小智 5
您可以使用OnUnhandledException
应用程序事件来捕获(几乎)所有代码未处理的异常。
在“项目属性”窗口(双击解决方案资源管理器上的项目文件或“项目菜单”->“[项目名称] 属性”),“应用程序”页面有一个“查看应用程序事件”按钮,可在项目中创建新文件。
\n\n\n\n在该文件中,有一些在应用程序级别触发的事件;其中之一是UnhandledException
. 无论您放在那里,都将被执行,而不是经典的 JIT 对话框。该UnhandledExceptionEventArgs
对象具有一个Exception
包含未处理异常对象的属性,以及一个ExitApplication
决定应用程序是否应退出或继续执行的属性。
Namespace My\n\n \' The following events are available for MyApplication:\n \' \n \' Startup: Raised when the application starts, before the startup form is created.\n \' Shutdown: Raised after all application forms are closed. This event is not raised if the application terminates abnormally.\n \' UnhandledException: Raised if the application encounters an unhandled exception.\n \' StartupNextInstance: Raised when launching a single-instance application and the application is already active. \n \' NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected.\n Partial Friend Class MyApplication\n Private Sub MyApplication_UnhandledException(sender As Object, e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles Me.UnhandledException\n MessageBox.Show(e.Exception.ToString) \'<-- the exception object\n e.ExitApplication = True \'<-- True if you want the application to close; false to continue - if it can\n End Sub\n End Class\n\nEnd Namespace\n
Run Code Online (Sandbox Code Playgroud)\n\n请注意,即使使用此方法,仍然有一些“\xc3\xbcber-exceptions”无法捕获(例如内存不足),但通过这种方式,您可以记录代码中未正确处理的异常,或者实际发生的情况是一开始没有考虑到的。
\n\n更多信息请点击此处
\n\n附带说明:不要过分依赖此事件。这必须是针对极其特殊的情况,因为此处捕获的内容应尽快在相应的类/模块/方法中处理。这是调试和测试用例的有用工具,但此事件处理的异常过多将表明代码中出现问题。
\n 归档时间: |
|
查看次数: |
1605 次 |
最近记录: |