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を処理するメソッドが含まれています。あなたはその後、ええ、それはApplication.ThreadExceptionを扱うだ、VB.NETを使用していない場合は、この気の利いたファイルを取得する
、それは「プロジェクトのプロパティ>>アプリケーション>>アプリケーションイベント」
です。
は、現在、私のWinFormsアプリで、私は上記のように、Application.ThreadException
用のハンドラを持っているだけでなく、AppDomain.CurrentDomain.UnhandledException
ほとんどの例外はThreadException
ハンドラを経由して到着したが、AppDomainのの1は、いくつかの私の経験で
未処理の例外の両方の種類を取得する方法を示すMSDNのサンプルコード:[msdn](http://msdn.microsoft.com/en-us/library/system.windows.forms.application.threadexception.aspx) –
コードをも捉えていますMSDNから:http://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-2
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イベント一般的に主な方法で使用される
。通常、Global.asaxファイルで使用さMSDN Thread Exception
Asp.Net
System.Web.HttpApplication.Errorイベント
を参照してください。一般的には、メインメソッドで使用MSDN Global.asax Global Handlers
コンソールアプリケーション
System.AppDomain.UnhandledExceptionイベント
を参照してください。参照してください。MSDN UnhandledException
- 1. WCFグローバル例外処理
- 2. WindowsFormsHostコントロール - 例外処理
- 3. Eclipse RCPアプリケーションのグローバル例外処理
- 4. C++でのグローバル例外処理
- 5. WinForms用ユーザーフレンドリー例外処理ライブラリ(.NET)
- 6. WPFのWinformsコンポーネントから未処理の例外を処理する
- 7. 例外処理内での例外処理
- 8. C#のDLLでグローバル例外処理を行うには?
- 9. マルチスレッドジャングルのグローバル例外処理 - フェイルセーフ/再起動
- 10. ビジュアルスタジオでの処理例外の処理
- 11. Javaの例外処理 - カスタム例外
- 12. servicemodel例外の例外処理
- 13. DB2例外処理
- 14. Python例外処理
- 15. モノトーングローバル例外処理
- 16. バックグラウンドワーカー例外処理
- 17. AddOnPreRenderCompleteAsync例外処理
- 18. java例外処理
- 19. UpdatePanel例外処理
- 20. Java例外処理
- 21. MVVM例外処理
- 22. Python:ODBC例外処理
- 23. epoll例外処理
- 24. ノード例外処理
- 25. Android。例外処理
- 26. DB2例外処理
- 27. Android例外処理
- 28. Python例外処理
- 29. タスクの例外の処理
- 30. NHibernateの例外の処理
また、いくつかの落とし穴について[私の質問](http://stackoverflow.com/questions/944/unhandled-exception-handler-in-net-11)を見てください(カップルへのリンクホラーブログエントリのコーディング)。 – Ray