もくじ やりたいこと Taskで非同期処理をしているときに、Taskを.Wait()する処理があった。 そこで例外が発生したときに、そいつをtry catchすると、起きていたはずの例外ではなくAggregateExceptionという例外がスローされていた。 元々タスクの中では別の例外が起きていたはずなのに、そいつはどこに行ったのか? 実際に起きた例外をキャッチするにはどうしたらよいのか?調べたい。 やったこと いろいろ調べたところ、 どうやら待ち方によって例外の受け取り方を変えないといけない様子。 今回調べた限りでは、下記のような待ち方ごとの例外のキャッチの仕方があった。 ①awaitで待つときのパターン awaitするときは、そこをtry catchで囲むだけで、通常通りに例外がcatchできる。 // awaitしたTaskの例外 private async void Button