Visual Basic自定义未处理的异常

时间:2014-04-19 04:36:30

标签: vb.net visual-studio visual-studio-2012

所以我在Visual Studio 2013中创建了一个Visual Basic应用程序,我正在尝试找到一种方法来优雅地处理未处理的异常。我在应用程序中很好地覆盖了优雅的失败但是想要计划我错过的东西。

所以,那就是说。有没有办法不直接向用户显示未处理的异常,而是触发向用户显示友好消息并将技术内容写入错误日志的函数或类?

2 个答案:

答案 0 :(得分:0)

UI框架通常在其主事件循环中具有默认处理程序,如果在循环内抛出异常,则会引发事件,但细节因框架而异。如果您的应用程序是基于WPF的,则UI线程上的未处理异常将引发Application.DispatcherUnhandledException。如果它是基于WinForms的,UI线程上的未处理异常将引发Application.ThreadException

.Net运行时将针对在调用堆栈中的任何位置(例如来自工作线程)未处理的异常引发AppDomain.UnhandledException

答案 1 :(得分:0)

假设Winforms,试试这个: 在“项目属性”窗口的“应用程序”选项卡上,单击底部的“查看应用程序事件”按钮。 在为您生成的分部类中,创建一个这样的子类:

 Private Sub MyApplication_UnhandledException(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles Me.UnhandledException
...
end sub

我会留下友好的信息并记录给你。