ReSharper 2026.1 Help

代码检查:避免对返回类型为“void”的方法和函数使用“async”(不要在“async void”方法和函数中重新抛出异常)

此检查可识别在 async void 方法或函数中重新抛出异常的情况,这可能导致应用崩溃。 与 async Taskasync 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; 语句替换为适当的异常处理。

如有可能,也请考虑使用 TaskTask<T> 作为异步方法的返回类型,以确保更好的异常处理能力和可维护性。

2026年 3月 25日