ThreadExceptionEventArgs Class
Provides data for the ThreadException event.
Assembly: System (in System.dll)
System.EventArgs
System.Threading.ThreadExceptionEventArgs
Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs
| Name | Description | |
|---|---|---|
![]() | ThreadExceptionEventArgs(Exception) | Initializes a new instance of the ThreadExceptionEventArgs class. |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | MemberwiseClone() | |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
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.
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.SuspendLayout() Me.button1.Location = New System.Drawing.Point(100, 43) Me.button1.Size = New System.Drawing.Size(75, 23) Me.button1.Text = "Click!" Me.Controls.Add(Me.button1) Me.Text = "ThreadException" Me.ResumeLayout(False) 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 Application.Exit() 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
Available since 1.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.


