ReSharper 2026.1 Help

コードインスペクション:戻り値の型が void のメソッドや関数では async の使用を避ける(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> を使用することも検討してください。

2026 年 6 月 12 日