Application.ThreadException
以前にandを使用したことがありAppDomain.CurrentDomain.UnhandledException
ますが、通常、これは単一のフォームにのみ使用します。したがって、通常は in を使用Main
しProgram.cs
ます。
try {
AppDomain.CurrentDomain.UnhandledException += (sender, e) => .Handle(sender, (Exception)e.ExceptionObject);
Application.ThreadException += (sender, e) => ExceptionHandler.Handle(sender, e.Exception);
Application.Run(ApplicationBase);
} catch (Exception ex) {
MessageBox.Show("Handled Exception");
}
しかし、私の新しい状況では、他のフォームが継承する単一の基本フォームを持つ現在のプロジェクト用のフォームが多数あります。
私がやろうとしているのは、ベースフォームからコード内の派生フォームでスローされた例外を処理することです.上記のコードをベースのコンストラクターに突っ込みました.イベントをヒットします。
コンストラクターと代替手段でこれを行うことができない理由は何ですか?
注:以前の質問を削除するVb.net
代わりにC#
、以前にこれを質問し、コードをリファクタリングして、C#
回答が得られるようにしました。