ThreadExceptionEventArgs クラス
アセンブリ: System (system.dll 内)


ThreadExceptionEventArgs は、処理されない例外が発生したときにスレッドによって作成されます。ThreadExceptionEventArgs は、発生した Exception を保持します。

フォーム上の button1 をクリックすることによって、ThreadException イベントを発生させる例を次に示します。この例では、次の 2 つのクラスを作成します。ErrorHandler クラスは、フォームと、イベントを発生させるボタンを作成します。CustomExceptionHandler クラスは、例外を処理するためのメソッドを提供します。
ErrorHandler クラスの Main では、コードが例外処理クラスの新しいインスタンス (CustomExceptionHandler のインスタンス) を作成します。次に、作成されたインスタンスがイベントに追加され、アプリケーションが実行 (Run) されます。
この例では、CustomExceptionHandler クラスの OnThreadException メソッドで、try...catch...finally ステートメントを使用して例外を処理しています。ShowThreadExceptionDialog メソッドは、表示するメッセージを作成し、そのメッセージをメッセージ ボックスに表示します。
' Creates a class to throw the error. Public Class ErrorHandler Inherits System.Windows.Forms.Form ' Inserts code to create a form with a button. ' Programs the button to throw the exception when clicked. Private Sub button1_Click(sender As Object, e As System.EventArgs) Throw New ArgumentException("The parameter was invalid") End Sub Public Shared Sub Main() ' Creates an instance of the methods that will handle the exception. Dim eh As New CustomExceptionHandler() ' Adds the event handler to to the event. AddHandler Application.ThreadException, AddressOf eh.OnThreadException ' Runs the application. Application.Run(New ErrorHandler()) End Sub End Class ' Creates a class to handle the exception event. Friend Class CustomExceptionHandler 'Handles the exception event Public Sub OnThreadException(sender As Object, t As ThreadExceptionEventArgs) Dim result As DialogResult = DialogResult.Cancel Try result = Me.ShowThreadExceptionDialog(t.Exception) Catch Try MessageBox.Show("Fatal Error", "Fatal Error", _ MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Stop) Finally Application.Exit() End Try End Try ' Exits the program when the user clicks Abort. If result = DialogResult.Abort Then Application.Exit() End If End Sub ' Creates the error message and display it. Private Function ShowThreadExceptionDialog(e As Exception) As DialogResult Dim errorMsg As String = "An error occurred please contact the " & _ "adminstrator with the following information:" & _ Microsoft.VisualBasic.ControlChars.Cr & _ Microsoft.VisualBasic.ControlChars.Cr errorMsg &= e.Message & Microsoft.VisualBasic.ControlChars.Cr & _ Microsoft.VisualBasic.ControlChars.Cr & "Stack Trace:" & _ Microsoft.VisualBasic.ControlChars.Cr & e.StackTrace Return MessageBox.Show(errorMsg, "Application Error", _ MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Stop) End Function End Class
// Creates a class to throw the error. public class ErrorHandler : System.Windows.Forms.Form { // Inserts code to create a form with a button. // Programs the button to throw the exception when clicked. private void button1_Click(object sender, System.EventArgs e) { throw new ArgumentException("The parameter was invalid"); } public static void Main(string[] args) { // Creates an instance of the methods that will handle the exception. CustomExceptionHandler eh = new CustomExceptionHandler(); // Adds the event handler to to the event. Application.ThreadException += new ThreadExceptionEventHandler(eh.OnThreadException); // Runs the application. Application.Run(new ErrorHandler()); } } // Creates a class to handle the exception event. internal class CustomExceptionHandler { //Handles the exception event public void OnThreadException(object sender, ThreadExceptionEventArgs t) { DialogResult result = DialogResult.Cancel; try { result = this.ShowThreadExceptionDialog(t.Exception); } catch { try { MessageBox.Show("Fatal Error", "Fatal Error", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Stop); } finally { Application.Exit(); } } // Exits the program when the user clicks Abort. if (result == DialogResult.Abort) Application.Exit(); } // Creates the error message and display it. private DialogResult ShowThreadExceptionDialog(Exception e) { string errorMsg = "An error occurred please contact the adminstrator " + "with the following information:\n\n"; errorMsg = errorMsg + e.Message + "\n\nStack Trace:\n" + e.StackTrace; return MessageBox.Show(errorMsg, "Application Error", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Stop); } }
// Creates a class to handle the exception event. private ref class CustomExceptionHandler { public: //Handles the exception event void OnThreadException( Object^ /*sender*/, ThreadExceptionEventArgs^ t ) { DialogResult result = DialogResult::Cancel; try { result = this->ShowThreadExceptionDialog( t->Exception ); } catch ( Exception^ ) { try { MessageBox::Show( "Fatal Error", "Fatal Error", MessageBoxButtons::AbortRetryIgnore, MessageBoxIcon::Stop ); } finally { Application::Exit(); } } // Exits the program when the user clicks Abort. if ( result == DialogResult::Abort ) Application::Exit(); } private: // Creates the error message and display it. DialogResult ShowThreadExceptionDialog( Exception^ e ) { String^ errorMsg = "An error occurred please contact the adminstrator with the following information:\n\n"; errorMsg = String::Concat( errorMsg, e->Message, "\n\nStack Trace:\n", e->StackTrace ); return MessageBox::Show( errorMsg, "Application Error", MessageBoxButtons::AbortRetryIgnore, MessageBoxIcon::Stop ); } }; // Creates a class to throw the error. public ref class ErrorHandler: public System::Windows::Forms::Form { private: // Inserts code to create a form with a button. // Programs the button to throw the exception when clicked. void button1_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ ) { throw gcnew ArgumentException( "The parameter was invalid" ); } }; int main() { // Creates an instance of the methods that will handle the exception. CustomExceptionHandler^ eh = gcnew CustomExceptionHandler; // Adds the event handler to to the event. Application::ThreadException += gcnew ThreadExceptionEventHandler( eh, &CustomExceptionHandler::OnThreadException ); // Runs the application. Application::Run( gcnew ErrorHandler ); }

System.EventArgs
System.Threading.ThreadExceptionEventArgs
Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ThreadExceptionEventArgs コンストラクタ
アセンブリ: System (system.dll 内)


フォーム上の button1 をクリックすることによって、ThreadException イベントを発生させる例を次に示します。この例では、次の 2 つのクラスを作成します。ErrorHandler クラスは、フォームと、イベントを発生させるボタンを作成します。CustomExceptionHandler クラスは、例外を処理するためのメソッドを提供します。
ErrorHandler クラスの Main では、コードが例外処理クラスの新しいインスタンス (CustomExceptionHandler のインスタンス) を作成します。次に、作成されたインスタンスがイベントに追加され、アプリケーションが実行 (Run) されます。
この例では、CustomExceptionHandler クラスの OnThreadException メソッドで、try...catch...finally ステートメントを使用して例外を処理しています。ShowThreadExceptionDialog メソッドは、表示するメッセージを作成し、そのメッセージをメッセージ ボックスに表示します。
' Creates a class to throw the error. Public Class ErrorHandler Inherits System.Windows.Forms.Form ' Inserts code to create a form with a button. ' Programs the button to throw the exception when clicked. Private Sub button1_Click(sender As Object, e As System.EventArgs) Throw New ArgumentException("The parameter was invalid") End Sub Public Shared Sub Main() ' Creates an instance of the methods that will handle the exception. Dim eh As New CustomExceptionHandler() ' Adds the event handler to to the event. AddHandler Application.ThreadException, AddressOf eh.OnThreadException ' Runs the application. Application.Run(New ErrorHandler()) End Sub End Class ' Creates a class to handle the exception event. Friend Class CustomExceptionHandler 'Handles the exception event Public Sub OnThreadException(sender As Object, t As ThreadExceptionEventArgs) Dim result As DialogResult = DialogResult.Cancel Try result = Me.ShowThreadExceptionDialog(t.Exception) Catch Try MessageBox.Show("Fatal Error", "Fatal Error", _ MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Stop) Finally Application.Exit() End Try End Try ' Exits the program when the user clicks Abort. If result = DialogResult.Abort Then Application.Exit() End If End Sub ' Creates the error message and display it. Private Function ShowThreadExceptionDialog(e As Exception) As DialogResult Dim errorMsg As String = "An error occurred please contact the " & _ "adminstrator with the following information:" & _ Microsoft.VisualBasic.ControlChars.Cr & _ Microsoft.VisualBasic.ControlChars.Cr errorMsg &= e.Message & Microsoft.VisualBasic.ControlChars.Cr & _ Microsoft.VisualBasic.ControlChars.Cr & "Stack Trace:" & _ Microsoft.VisualBasic.ControlChars.Cr & e.StackTrace Return MessageBox.Show(errorMsg, "Application Error", _ MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Stop) End Function End Class
// Creates a class to throw the error. public class ErrorHandler : System.Windows.Forms.Form { // Inserts code to create a form with a button. // Programs the button to throw the exception when clicked. private void button1_Click(object sender, System.EventArgs e) { throw new ArgumentException("The parameter was invalid"); } public static void Main(string[] args) { // Creates an instance of the methods that will handle the exception. CustomExceptionHandler eh = new CustomExceptionHandler(); // Adds the event handler to to the event. Application.ThreadException += new ThreadExceptionEventHandler(eh.OnThreadException); // Runs the application. Application.Run(new ErrorHandler()); } } // Creates a class to handle the exception event. internal class CustomExceptionHandler { //Handles the exception event public void OnThreadException(object sender, ThreadExceptionEventArgs t) { DialogResult result = DialogResult.Cancel; try { result = this.ShowThreadExceptionDialog(t.Exception); } catch { try { MessageBox.Show("Fatal Error", "Fatal Error", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Stop); } finally { Application.Exit(); } } // Exits the program when the user clicks Abort. if (result == DialogResult.Abort) Application.Exit(); } // Creates the error message and display it. private DialogResult ShowThreadExceptionDialog(Exception e) { string errorMsg = "An error occurred please contact the adminstrator " + "with the following information:\n\n"; errorMsg = errorMsg + e.Message + "\n\nStack Trace:\n" + e.StackTrace; return MessageBox.Show(errorMsg, "Application Error", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Stop); } }
// Creates a class to handle the exception event. private ref class CustomExceptionHandler { public: //Handles the exception event void OnThreadException( Object^ /*sender*/, ThreadExceptionEventArgs^ t ) { DialogResult result = DialogResult::Cancel; try { result = this->ShowThreadExceptionDialog( t->Exception ); } catch ( Exception^ ) { try { MessageBox::Show( "Fatal Error", "Fatal Error", MessageBoxButtons::AbortRetryIgnore, MessageBoxIcon::Stop ); } finally { Application::Exit(); } } // Exits the program when the user clicks Abort. if ( result == DialogResult::Abort ) Application::Exit(); } private: // Creates the error message and display it. DialogResult ShowThreadExceptionDialog( Exception^ e ) { String^ errorMsg = "An error occurred please contact the adminstrator with the following information:\n\n"; errorMsg = String::Concat( errorMsg, e->Message, "\n\nStack Trace:\n", e->StackTrace ); return MessageBox::Show( errorMsg, "Application Error", MessageBoxButtons::AbortRetryIgnore, MessageBoxIcon::Stop ); } }; // Creates a class to throw the error. public ref class ErrorHandler: public System::Windows::Forms::Form { private: // Inserts code to create a form with a button. // Programs the button to throw the exception when clicked. void button1_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ ) { throw gcnew ArgumentException( "The parameter was invalid" ); } }; int main() { // Creates an instance of the methods that will handle the exception. CustomExceptionHandler^ eh = gcnew CustomExceptionHandler; // Adds the event handler to to the event. Application::ThreadException += gcnew ThreadExceptionEventHandler( eh, &CustomExceptionHandler::OnThreadException ); // Runs the application. Application::Run( gcnew ErrorHandler ); }

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


ThreadExceptionEventArgs プロパティ


関連項目
ThreadExceptionEventArgs クラスSystem.Threading 名前空間
Thread クラス
ThreadStart
ThreadExceptionEventHandler
ThreadExceptionEventArgs メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

関連項目
ThreadExceptionEventArgs クラスSystem.Threading 名前空間
Thread クラス
ThreadStart
ThreadExceptionEventHandler
ThreadExceptionEventArgs メンバ
ThreadException イベントのデータを提供します。
ThreadExceptionEventArgs データ型で公開されるメンバを以下の表に示します。



名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

関連項目
ThreadExceptionEventArgs クラスSystem.Threading 名前空間
Thread クラス
ThreadStart
ThreadExceptionEventHandler
Weblioに収録されているすべての辞書からThreadExceptionEventArgsを検索する場合は、下記のリンクをクリックしてください。

- ThreadExceptionEventArgsのページへのリンク