C#相当于Java';s Thread.setDefaultUncaughtExceptionHandler()?

C#相当于Java';s Thread.setDefaultUncaughtExceptionHandler()?,c#,multithreading,exception-handling,C#,Multithreading,Exception Handling,是否存在Java的线程.setDefaultUncaughtExceptionHandler()的C#等价物?AppDomain.UnhandledException事件。对于非WinForms和WinForms都有 它们不太可能完全等同于Java处理程序,但它们可能会执行您需要的操作。类似这样的操作 在你的主要方法中使用这个 Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadExce

是否存在Java的
线程.setDefaultUncaughtExceptionHandler()
的C#等价物?

AppDomain.UnhandledException事件。

对于非WinForms和WinForms都有

它们不太可能完全等同于Java处理程序,但它们可能会执行您需要的操作。

类似这样的操作

在你的主要方法中使用这个

Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException);
申报

public static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
{
    ... code goes here ...
}

这应该可以处理win forms应用程序中的任何线程异常,对于控制台,请查看上面海报中详细介绍的AppDomain处理程序。

值得注意的是:“即使您已为AppDomain注册了未经处理的异常处理程序,控制台应用程序中也会出现标准的.NET崩溃对话框”@dtb-谢谢,我刚刚发现了这一点。:-)