すべてのブロックに対して try{} catch{} を記述するのではなく、すべてのエラーを 1 か所で処理することは可能ですか。
catch (Exception ex)
{
logger.Error(ex.Message);
ShowErrorMessage(ex.Message);
}
すべてのブロックに対して try{} catch{} を記述するのではなく、すべてのエラーを 1 か所で処理することは可能ですか。
catch (Exception ex)
{
logger.Error(ex.Message);
ShowErrorMessage(ex.Message);
}
例外の処理方法がわからない場合を除き、通常はできるだけ早く例外を処理する必要があります。キャッチされない例外については、AppDomain.UnhandledExceptionおよびApplication.ThreadExceptionイベントを処理できます。コードのUnhandledException
どこかで例外がスローされたが、それを処理していない場合、イベントが発生します。MSDN から:
[UnhandledException] は、キャッチされていない例外を通知します。これにより、アプリケーションは、システムのデフォルト ハンドラがユーザーに例外を報告してアプリケーションを終了する前に、例外に関する情報をログに記録できます。アプリケーションの状態に関する十分な情報が利用可能な場合は、後で復元するためにプログラム データを保存するなど、他のアクションを実行できます。例外が処理されない場合、プログラム データが破損する可能性があるため、注意が必要です。
はい。キャッチされていない例外を登録する必要があります。これは、プロジェクト設定の [アプリケーション イベントの表示] で実行できます。これは、MyApplication_UnhandledException と呼ばれます。