當處理ASP.NET 1.1項目時,我總是使用Global.asax來捕獲所有錯誤。我正在尋找一種類似的方法來捕獲Windows窗體用戶控件中的所有異常,最終成爲託管IE控件。什麼是正確的方式去做這樣的事情?winforms控件的全局異常處理
回答
您需要處理Windows窗體的System.Windows.Forms.Application.ThreadException
事件。這篇文章真的幫了我:http://bytes.com/forum/thread236199.html。
如果您使用的是VB.NET,您可以使用非常方便的ApplicationEvents.vb。此文件免費提供一個VB.NET WinForms項目,幷包含一個處理unhandled exceptions的方法。
爲了得到這個漂亮的文件,它的「項目屬性>>應用>>應用程序事件」
如果你不使用VB.NET,那麼是的,它的操控性Application.ThreadException。
目前在我的WinForms應用程序我有處理程序Application.ThreadException
,如上所述,也AppDomain.CurrentDomain.UnhandledException
大多數例外通過ThreadException
處理到達,但在AppDomain一個也抓了幾個在我的經驗
來自MSDN的示例代碼顯示如何捕獲這兩種類型的未處理的異常:[msdn](http://msdn.microsoft.com/zh-cn/library/system.windows.forms.application.threadexception.aspx) – 2011-07-14 00:43:26
Sub Main()
Dim currentDomain As AppDomain = AppDomain.CurrentDomain
AddHandler currentDomain.UnhandledException, AddressOf MyHandler
Try
Throw New Exception("1")
Catch e As Exception
Console.WriteLine("Catch clause caught : " + e.Message)
Console.WriteLine()
End Try
Throw New Exception("2")
End Sub
Sub MyHandler(sender As Object, args As UnhandledExceptionEventArgs)
Dim e As Exception = DirectCast(args.ExceptionObject, Exception)
Console.WriteLine("MyHandler caught : " + e.Message)
Console.WriteLine("Runtime terminating: {0}", args.IsTerminating)
End Sub
在全球範圍內處理異常...
Windows應用程序
System.Windows.Forms.Application.ThreadException事件
的主要方法一般使用。請參閱MSDN Thread Exception
Asp.Net
System.Web.HttpApplication.Error事件
在Global.asax文件中正常使用。請參閱MSDN Global.asax Global Handlers
控制檯應用程序
System.AppDomain.UnhandledException事件
的主要方法一般使用。請參考MSDN UnhandledException
- 1. WinForms全局異常處理?
- 2. WCF全局異常處理
- 3. Monotouch全局異常處理
- 4. Flask全局異常處理
- 5. Angular2全局異常處理
- 6. 在全局異常處理程序中處理線程異常?
- 7. 的WinForms異常處理
- 8. Struts 2中的全局異常處理
- 9. ASP.NET 5中的全局異常處理
- 10. 全局處理JSF2中的異常
- 11. perl中的全局級異常處理
- 12. .NET中的全局異常處理?
- 13. Spring 4 mvc全局異常處理
- 14. Spring MVC:全局異常處理程序
- 15. 「全局」異常處理程序
- 16. 處理全局異常Xamarin | Droid | iOS
- 17. Java:全局異常處理程序
- 18. iOS - 全局異常處理程序
- 19. Flex 3全局異常處理
- 20. 在phalcon中處理全局異常
- 21. 全局異常處理程序WPF
- 22. 在VB中處理全局異常
- 23. JavaFX 8(Lombard)全局異常處理
- 24. TAP全局異常處理程序
- 25. BlackBerry - 全局異常處理程序
- 26. java struts全局異常處理
- 27. MVC AntiForgeryToken異常 - 全局處理
- 28. 全局異常春處理,Tomcat7
- 29. EJB全局異常處理程序
- 30. Java全局異常處理程序
另請參見[我的問題](http://stackoverflow.com/questions/944/unhandled-exception-handler-in-net-11)的一些陷阱(鏈接到一對夫婦編碼恐怖博客條目)。 – Ray 2008-08-05 22:17:11