質問

C#プログラムは以下によって呼び出されます。

Application.Run (new formClass ());

未確認の例外をトラップするために、全体にtry / catchを配置したいと思います。このRunメソッドを囲むと、例外はキャッチされません。キャッチされない例外の後にプログラムが終了した場合にのみ、制御はここに戻ります。

try / catchを入れてプログラム全体をカバーできますか?ありがとう!

役に立ちましたか?

解決

Windowsフォームの未処理の例外をキャッチするには、 AppDomain.UnhandledException および Application.ThreadException イベント。

対象:管理対象アプリケーションの予期しないエラー

他のヒント

基本的に、デフォルトのCLRホスティングプロセスを使用する場合、すべての例外をキャッチすることはできません。期間。これは、 AppDomain.UnhandledException イベントは通知のみであり、例外を処理できません(つまり、通知の処理後にアプリケーションが終了しないようにすることはできません)。

ただし、 Application.ThreadException ハンドラー(および します。 unhandledexceptionmode.aspx "rel =" nofollow noreferrer "> UnhandledExceptionMode )。例外をスローする他のスレッドは、このハンドラーによってキャッチされません。

一般的に、すべての例外を処理しようとするのは得策ではありません。ただし、使用することができます AppDomain.UnhandledException を使用して、エラーをログに記録したり、重要なクリーンアップタスクを実行したりします(ファイルベースのデータベースなどをシャットダウンします)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top