【发布时间】:2014-07-21 13:35:37
【问题描述】:
我是 C# 新手,我发现异常有点令人困惑... 我有一个带有以下代码的网络应用程序:
try
{
//do something
}
catch (TimeoutException t)
{
Console.WriteLine(t);
}
catch (TaskCanceledException tc)
{
Console.WriteLine(tc);
}
catch (Exception e)
{
Console.WriteLine(e);
}
当我调试代码时,它会抛出 e Exception,这是最常见的一个,当我将鼠标悬停在异常信息上时,结果发现它是 TaskCanceledException。为什么TaskCanceledException 没有被抓到?如果异常是TimeoutException,它会捕获TimeoutException,还是也会捕获Exception?这是为什么呢?
【问题讨论】:
-
你确定这不是从
Task对象抛出的AggregationException吗?向我们展示投掷电话 -
...是的,它是 System.AggregateException 而 InnerException 是 System.Threading.Task.TaskCanceledException。
标签: c# exception-handling timeoutexception