Tôi đang cố gắng để chạy các đoạn mã sau:Tại sao ngoại lệ này không bị bắt?
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);
}
}
}
tôi mong đợi rằng Exception
sẽ bị bắt ở vị trí sau:
catch (AggregateException aex)
{
Console.Write(aex.InnerException.Message);
}
Nhưng điều này không xảy ra. Tại sao cái này rất?
Câu trả lời được giải quyết những gì và cách thực hiện nhưng không phải là "lý do" (ngoại lệ không bị bắt). Tôi tin rằng lý do này là quan trọng để hiểu và nó được giải thích trong bài viết của Stephen Toub [Xử lý ngoại lệ trong .NET 4.5] (http://blogs.msdn.com/b/pfxteam/archive/2011/09/28/10217876. aspx) mà là một-phải đọc] –