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. 例外処理
- 2. 例外処理
- 3. MVVM例外処理
- 4. Android。例外処理
- 5. DB2例外処理
- 6. DB2例外処理
- 7. JAXB例外処理
- 8. TimeOut例外処理
- 9. Android例外処理
また、いくつかの落とし穴について[私の質問](http://stackoverflow.com/questions/944/unhandled-exception-handler-in-net-11)を見てください(カップルへのリンクホラーブログエントリのコーディング)。 – Ray