c# - AppDomain.CurrentDomain.UnhandledException 未在异步方法中捕获异常
问题描述
来自MSDN:
如果在默认应用程序域中处理了 UnhandledException 事件,则无论线程在哪个应用程序域中启动,任何线程中的任何未处理异常都会在该处引发。
所以我有以下内容:
类中的异步方法:
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
and DispatcherUnhandledException
,也不管用。
当我在构造函数中打包异常时,MyClass
一切正常,但在InitializeAsync
方法中却没有
有任何想法吗?
解决方案
推荐阅读
- c - 如何在 16 位 MCU 上用 C 语言实现三阶多项式公式计算
- c# - JSON 值无法转换为 System.Collections.Generic.List
- heroku - 在 heroku 或数字海洋上部署我的应用程序时,sass @import 语句会阻止构建过程
- next.js - next-images 打破了我的 next.js 项目中的所有绝对路径
- nginx - Nginx ERR_TOO_MANY_REDIRECTS
- python - python requests.get() 没有显示所有数据
- c++ - 如何使 cppcheck 2.5 在构造函数中调用虚函数时显示错误。旧版本显示此错误
- c++ - 当 csv 文件附加到文件时,cpp 文件中出现错误 LNK2019
- visual-studio-code - Visual Studio 代码自动导入不起作用
- javascript - 使用 D3.js 构建条形图时的问题