ThreadExceptionEventArgs Class

Provides data for the ThreadException event.

Namespace:  System.Threading
Assembly:  System (in System.dll)

'Declaration
Public Class ThreadExceptionEventArgs _
	Inherits EventArgs

The ThreadExceptionEventArgs type exposes the following members.

  NameDescription
Public methodThreadExceptionEventArgsInitializes a new instance of the ThreadExceptionEventArgs class.
Top

  NameDescription
Public propertyExceptionGets the Exception that occurred.
Top

  NameDescription
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Top

A ThreadExceptionEventArgs is created by a thread when an unhandled exception occurs. ThreadExceptionEventArgs contains the Exception that occurred.

The following example allows you to raise a ThreadException event by clicking button1 on a form. The example creates two classes. The ErrorHandler class creates the form and the button that raises the event. The CustomExceptionHandler class provides the methods to handle the exception.

In 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.

In the OnThreadException method in the CustomExceptionHandler class, the example uses a try...catch...finally statement to process the exception. The ShowThreadExceptionDialog method creates the message to display, and displays it in a message box.

' 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

.NET Framework

Supported in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft