在 C# 中,ThreadException
和 UnhandledException
都是用于处理未捕获异常的机制,但它们分别针对不同类型的线程和异常。这两种异常处理机制如果未能妥善处理异常,都可能导致应用程序崩溃。
ThreadException
ThreadException
事件通常用于处理 UI 线程(如 Windows Forms 应用程序中的主线程)中未捕获的异常。当 UI 线程抛出一个未处理的异常时,会触发 Application.ThreadException
事件。如果你没有为这个事件设置处理程序,或者处理程序没有正确处理异常,那么应用程序可能会崩溃。
示例代码
Csharp
深色版本
using System;
using System.Windows.Forms;
public class MainForm : Form
{
public MainForm()
{
// 设置 ThreadException 事件处理程序
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
}
private static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
MessageBox.Show($"Thread Exception: {e.Exception.Message}");
}
[STAThread]
static void Mai