タスク内で発生した例外は、Wait()またはResult呼び出し時に放出される。例外はAggregateExceptionに集約されて、それがスローされる。 コード例1 public class ThrowErrorSample { public static void Run() { var task = Task.Factory.StartNew(() => { Thread.Sleep(500); throw new Exception("なんらかのエラー"); }); try { task.Wait(); } catch (AggregateException exc) { foreach (var innnerExc in exc.InnerExceptions) { Console.WriteLine("エラー:" + innnerExc.Message); } } } } c
![タスクでの例外の取り扱いについて - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/68e670ab9c269cfb5b2d807df7ec84d9317729b7/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUUzJTgyJUJGJUUzJTgyJUI5JUUzJTgyJUFGJUUzJTgxJUE3JUUzJTgxJUFFJUU0JUJFJThCJUU1JUE0JTk2JUUzJTgxJUFFJUU1JThGJTk2JUUzJTgyJThBJUU2JTg5JUIxJUUzJTgxJTg0JUUzJTgxJUFCJUUzJTgxJUE0JUUzJTgxJTg0JUUzJTgxJUE2JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz02Njk3NzllZDFhMDc4NjViYmVlMzdhMGRiZTY2YjJhOQ%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwa2VuMjAwJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0xMWE1MjE0NWQ1YjQwYzBkMTI1NDliZTVlZWE5YjM2NQ%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D82f1d1c97aa21d2c28042858225a09ea)