代码检查:请勿在 '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<T> 作为异步方法的返回类型,以确保更好的异常处理和可维护性。
最后修改日期: 2025年 9月 26日