c# - 未捕获重新抛出异常

标签 c#

我有一个在后台运行任务的扩展方法,并将其放入 try-catch block 中以处理它引发的任何异常。问题是 Visual Studio 总是停止在我的代码的重新抛出部分,我不知道为什么。

try {
    task.RunInBackground();
} catch (Exception e) {
    // do something
}

enter image description here

最佳答案

您需要像这样等待任务:

try {
    await task.RunInBackground();
} catch (Exception e) {
    // do something
}

尽可能避免使用 async void。删除async void,将其替换为async Task,如下所示:

public static async Task RunInBackground(this Task task) {
    // ....
}

如果您需要知道为什么要避免 async void,请检查此 link来自msdn。

关于c# - 未捕获重新抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36803928/

相关文章:

c# - 使用 MVC、WCF、EF 的应用程序架构

c# - 将字符串数组转换为字节数组

c# - Stackpanel 中的水平方向,Stackpanel 宽度末尾的新行

c# - 使用属性与计算变化值的方法

c# - 在 session 中缓存数据集以按需获取

c# - 在 SSIS 脚本任务中更新 Excel 文件的格式

c# - 使用 C# 生成 Word 文档

c# - 为同一个匿名方法创建两个委托(delegate)实例不相等

c# - 如何在 C# for 循环中初始化多个不同类型的变量?

c# - 无法在 C# WEB API REST 服务单元测试中模拟 Owin 上下文