代码检查:请勿在 'async void' 方法和函数中重新抛出异常
此检查会识别在 async void 方法或函数中重新引发异常的情况,这可能导致应用程序崩溃。 与 async Task 或 async Task<T> 方法不同, async void 方法中的异常不会被直接等待,而是传播到同步上下文或未处理异常处理程序。 此行为可能导致整个应用程序进程终止。
class Example
{
async void FaultyMethod()
{
try
{
await Task.Delay(100);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
throw; // Warning: Can crash the process
}
}
}
为避免运行时崩溃,请使用适当的异常处理替换 throw; 语句。
如果可能,还请考虑使用 Task 或 Task<T> 作为异步方法的返回值类型,以确保更好的异常处理与可维护性。
最后修改日期: 2025年 12月 5日