ThreadExceptionEventArgs(Exception) コンストラクター


ThreadExceptionEventArgs クラスの新しいインスタンスを初期化します。Initializes a new instance of the ThreadExceptionEventArgs class.

 ThreadExceptionEventArgs(Exception ^ t);
public ThreadExceptionEventArgs (Exception t);
new System.Threading.ThreadExceptionEventArgs : Exception -> System.Threading.ThreadExceptionEventArgs
Public Sub New (t As Exception)



発生した ExceptionThe Exception that occurred.

次の例では、フォームをThreadExceptionクリックbutton1してイベントを発生させることができます。The following example allows you to raise a ThreadException event by clicking button1 on a form. この例では、2つのクラスを作成します。The example creates two classes. クラスErrorHandlerは、イベントを発生させるフォームとボタンを作成します。The ErrorHandler class creates the form and the button that raises the event. クラスCustomExceptionHandlerには、例外を処理するメソッドが用意されています。The CustomExceptionHandler class provides the methods to handle the exception.

クラスのでMain 、コードは例外処理クラスの新しいインスタンスを作成しCustomExceptionHandlerます。これはのインスタンスです。 ErrorHandlerIn Main in the ErrorHandler class, the code creates a new instance of the exception handling class, that is, an instance of the CustomExceptionHandler. 次に、インスタンスがイベントに追加され、アプリケーションが実行されます。Then the instance is added to the event, and the application is run.

CustomExceptionHandlerクラスのtry...catch...finallyメソッドで、この例では、ステートメントを使用して例外を処理します。 OnThreadExceptionIn the OnThreadException method in the CustomExceptionHandler class, the example uses a try...catch...finally statement to process the exception. メソッドShowThreadExceptionDialogは、表示するメッセージを作成し、メッセージボックスに表示します。The ShowThreadExceptionDialog method creates the message to display, and displays it in a message box.

using System;
using System.Threading;
using System.Windows.Forms;

// Create a form with a button that, when clicked, throws an exception.
 public class ErrorForm : System.Windows.Forms.Form
    internal Button button1;

    public ErrorForm() : base()
       // Add the button to the form.
       this.button1 = new System.Windows.Forms.Button();
       this.button1.Location = new System.Drawing.Point(100, 43);
       this.button1.Size = new System.Drawing.Size(75, 23);
       this.button1.Text = "Click!";
       this.button1.Click += new EventHandler(this.button1_Click);

       this.Text = "ThreadException";

    // Throw an exception when the button is clicked.
    private void button1_Click(object sender, System.EventArgs e)
       throw new ArgumentException("The parameter was invalid");
    public static void Main()
       // Add the event handler.
       Application.ThreadException += new ThreadExceptionEventHandler(CustomExceptionHandler.OnThreadException);

       // Start the example.
       Application.Run(new ErrorForm());
 // Create a class to handle the exception event.
 internal class CustomExceptionHandler
     // Handle the exception event
    public static void OnThreadException(object sender, ThreadExceptionEventArgs t)
       DialogResult result = ShowThreadExceptionDialog(t.Exception);

       // Exit the program when the user clicks Abort.
       if (result == DialogResult.Abort) 
    // Create and display the error message.
    private static DialogResult ShowThreadExceptionDialog(Exception e)
       string errorMsg = "An error occurred.  Please contact the adminstrator " +
            "with the following information:\n\n";
       errorMsg += String.Format("Exception Type: {0}\n\n", e.GetType().Name);
       errorMsg += "\n\nStack Trace:\n" + e.StackTrace;
       return MessageBox.Show(errorMsg, "Application Error", 
            MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Stop);
Imports System.Threading
Imports System.Windows.Forms

' Create a form with a button that, when clicked, throws an exception.
Public Class ErrorForm : Inherits Form
    Friend WithEvents button1 As Button

    Public Sub New()
       ' Add the button to the form.
      Me.button1 = New System.Windows.Forms.Button()
      Me.button1.Location = New System.Drawing.Point(100, 43)
      Me.button1.Size = New System.Drawing.Size(75, 23)
      Me.button1.Text = "Click!"

      Me.Text = "ThreadException"
   End Sub

    ' Throw an exception when the button is clicked.
    Private Sub button1_Click(sender As Object, e As System.EventArgs) _
                Handles button1.Click
        Throw New ArgumentException("The parameter was invalid.")
    End Sub
    Public Shared Sub Main()
        ' Add the event handler.
        AddHandler Application.ThreadException,
                   AddressOf CustomExceptionHandler.OnThreadException
        ' Start the example.
        Application.Run(New ErrorForm())
    End Sub
End Class

' Create a class to handle the exception event.
Friend Class CustomExceptionHandler
    'Handle the exception event.
    Public Shared Sub OnThreadException(sender As Object, t As ThreadExceptionEventArgs)
        Dim result As DialogResult = ShowThreadExceptionDialog(t.Exception)

        ' Exit the program when the user clicks Abort.
        If result = DialogResult.Abort Then
        End If
    End Sub
    ' Create and display the error message.
    Private Shared Function ShowThreadExceptionDialog(e As Exception) As DialogResult
        Dim errorMsg As String = "An error occurred.  Please contact the " &
            "adminstrator with the following information:" &
            vbCrLf & vbCrLf
        errorMsg &= "Exception Type: " & e.GetType().Name & vbCrLf & vbCrLf
        errorMsg &= e.Message & vbCrLf & vbCrLf
        errorMsg &= "Stack Trace: " & vbCrLf & e.StackTrace

        Return MessageBox.Show(errorMsg, "Application Error",
               MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Stop)
    End Function
End Class