在以下代码"内部捕获块"永远不会打印。 "最后一行"虽然打印。为什么这样?请帮忙。
Task task1 = Task.Factory.StartNew(() =>
{
throw new Exception("some exception");
});
try
{
Task.WaitAny(new Task[] { task1 });
}
catch(Exception e)
{
Console.WriteLine("Inside catch block.");
}
Console.WriteLine("Final line.");
答案 0 :(得分:-1)
这是因为您的代码在不同的线程中执行,但您可以使用以下代码捕获在不同线程中发生的异常
Task task1 = Task.Factory.StartNew(() =>
{
throw new Exception("some exception");
});
try
{
task1.Wait();
}
catch (AggregateException ex)
{
Console.WriteLine(ex);
}