从 MSDN:
如果UnhandledException事件是在默认的applicationdomain中处理的,那么它将在那里为 任何 异常 任何 线程,无论该线程在哪个应用域启动。
所以,我有以下内容。
一个类中的异步方法
public Task Initialization { get; }
public MyClass(string language)
{
Initialization = InitializeAsync(language);
}
private async Task InitializeAsync(string language)
{
throw new Exception("Test Exception");
}
注册一个事件来捕获所有未处理的异常(在OnStartUp方法中)。
protected override void OnStartup(StartupEventArgs e)
{
AppDomain.CurrentDomain.UnhandledException += MyHandler;
}
private static void MyHandler(object sender, UnhandledExceptionEventArgs args)
{
MessageBox.Show("Exception", "Caption");
}
问题是... UnhandledException
事件中没有捕捉到异常。InitializeAsync
办法
这个 疑问 在我看来,SO上的UnhandledException在所有线程中都能捕捉到异常,但对我来说却不是。
我试着删除 ConfigureAwait(false)
,它也不工作。
我用的是 UnobservedTaskException
和 DispatcherUnhandledException
也不行
当我把异常打包到 MyClass
构造函数一切正常,但在 InitializeAsync
方法,它不
有什么想法吗?