ThreadExceptionEventArgs 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
ThreadException 이벤트에 대한 데이터를 제공합니다.
public ref class ThreadExceptionEventArgs : EventArgs
public class ThreadExceptionEventArgs : EventArgs
type ThreadExceptionEventArgs = class
inherit EventArgs
Public Class ThreadExceptionEventArgs
Inherits EventArgs
- 상속
- 파생
예제
다음 예제에서는 폼을 ThreadException 클릭하여 이벤트를 발생시키는 방법을 button1
설명합니다. 이 예제에서는 두 개의 클래스를 만듭니다. 클래스는 ErrorHandler
폼과 이벤트를 발생시키는 단추를 만듭니다. 클래스는 CustomExceptionHandler
예외를 처리하는 메서드를 제공합니다.
Main
클래스에서 ErrorHandler
코드는 예외 처리 클래스의 새 instance 만듭니다. 즉, 의 CustomExceptionHandler
instance. 이벤트를 인스턴스에 추가 되는 다음 하 고 애플리케이션이 실행 됩니다.
클래스의 OnThreadException
메서드에서 CustomExceptionHandler
예제에서는 문을 사용하여 try...catch...finally
예외를 처리합니다. 메서드는 ShowThreadExceptionDialog
표시할 메시지를 만들고 메시지 상자에 표시합니다.
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.SuspendLayout();
this.button1.Location = new System.Drawing.Point(100, 43);
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.Text = "Click!";
this.Controls.Add(this.button1);
this.button1.Click += new EventHandler(this.button1_Click);
this.Text = "ThreadException";
this.ResumeLayout(false);
}
// 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)
Application.Exit();
}
// 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.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
설명
처리 ThreadExceptionEventArgs 되지 않은 예외가 발생할 때 스레드에서 을 만듭니다. ThreadExceptionEventArgs 에는 발생한 가 Exception 포함됩니다.
생성자
ThreadExceptionEventArgs(Exception) |
ThreadExceptionEventArgs 클래스의 새 인스턴스를 초기화합니다. |
속성
Exception |
발생한 Exception을 가져옵니다. |
메서드
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
적용 대상
추가 정보
.NET