await しているタスクの中で発生した例外は普通にキャッチできる。
try
{
await Task.Run(() =>
{
throw new Exception("hoge");
});
}
catch (Exception ex)
{
Log.Debug("例外: " + ex.Message);
}
・デバッガーは「ユーザーが処理していない例外」としてストップするが、継続実行で普通にキャッチされる
・Task.Factory.StartNew でも可
await しないとキャッチできない。
.NET 9 / Visual Studio 2022 17.13.1