如果我的 Class 库中存在未处理的异常,我的应用程序会崩溃吗?
My Application crashes if there is an unhandled exception in my Class Library?
我所做的基本上是创建一个 .DLL。我在这些 DLL 中有很多东西,碰巧我错过了一个场景,一些意想不到的事情发生了。我正在对其进行单元测试,但我想百分百确定我的 WinForms 应用程序永远不会崩溃。
我有:
一个解决方案有两个项目:
- ProjectDLL(Class 库)
- ProjectWinForms(Windows 表单应用程序 [.NET Framework])
我做了什么:
在 ProjectWinForms 中,我将其添加到 ApplicationEvents.vb
Private Sub MyApplication_UnhandledException(sender As Object, e As UnhandledExceptionEventArgs) Handles Me.UnhandledException
Bugsplat_Lander.ExeptionToShow = e.Exception
Bugsplat_Lander.Show()
Bugsplat_Lander.BringToFront()
e.ExitApplication = False
End Sub
只要在我的 ProjectWinForms 项目中发生异常,它就可以正常工作。但是,如果我构建一个发布版本,将其移动到另一台计算机,并创建一个例外;我的应用程序将简单地关闭,并将错误写入 Windows 事件。
我想达到的目标:
基本上最好的办法是打开此表单,即使在我的 ProjectDLL 代码中发生异常,也不要退出应用程序。
我确定是我做错了什么,只是想不通是什么。
首先,黄金法则是:如果您的代码产生了异常,则必须对其进行处理,否则您的应用程序将在脏状态下运行。
对于您的问题,请查看 Application.SetUnhandledExceptionMode Method。也许这可以帮助你
我所做的基本上是创建一个 .DLL。我在这些 DLL 中有很多东西,碰巧我错过了一个场景,一些意想不到的事情发生了。我正在对其进行单元测试,但我想百分百确定我的 WinForms 应用程序永远不会崩溃。
我有:
一个解决方案有两个项目:
- ProjectDLL(Class 库)
- ProjectWinForms(Windows 表单应用程序 [.NET Framework])
我做了什么:
在 ProjectWinForms 中,我将其添加到 ApplicationEvents.vb
Private Sub MyApplication_UnhandledException(sender As Object, e As UnhandledExceptionEventArgs) Handles Me.UnhandledException
Bugsplat_Lander.ExeptionToShow = e.Exception
Bugsplat_Lander.Show()
Bugsplat_Lander.BringToFront()
e.ExitApplication = False
End Sub
只要在我的 ProjectWinForms 项目中发生异常,它就可以正常工作。但是,如果我构建一个发布版本,将其移动到另一台计算机,并创建一个例外;我的应用程序将简单地关闭,并将错误写入 Windows 事件。
我想达到的目标:
基本上最好的办法是打开此表单,即使在我的 ProjectDLL 代码中发生异常,也不要退出应用程序。
我确定是我做错了什么,只是想不通是什么。
首先,黄金法则是:如果您的代码产生了异常,则必须对其进行处理,否则您的应用程序将在脏状态下运行。 对于您的问题,请查看 Application.SetUnhandledExceptionMode Method。也许这可以帮助你