我試圖運行下面的代碼:爲什麼這個異常沒有被捕獲?
class Program
{
static void Main(string[] args)
{
var task = Task.Factory.StartNew(() =>
{
throw new ApplicationException("message");
});
try
{
task.ContinueWith(t => Console.WriteLine("End"));
}
catch (AggregateException aex)
{
Console.Write(aex.InnerException.Message);
}
}
}
我預計Exception
將在以下位置被抓:
catch (AggregateException aex)
{
Console.Write(aex.InnerException.Message);
}
但這沒有發生。這是爲什麼?
回答涉及什麼以及如何做,但不是「爲什麼」(異常未捕獲)。我相信這個基本原理非常重要,在Stephen Toub的文章[.NET 4.5中的任務異常處理](http://blogs.msdn.com/b/pfxteam/archive/2011/09/28/10217876)中有解釋。 aspx)這是一個必讀] – 2013-05-17 03:23:27