【发布时间】:2013-11-08 17:55:53
【问题描述】:
我读到的每一个地方都说下面的代码应该可以工作,但事实并非如此。
public async Task DoSomething(int x)
{
try
{
// Asynchronous implementation.
await Task.Run(() => {
throw new Exception();
x++;
});
}
catch (Exception ex)
{
// Handle exceptions ?
}
}
也就是说,我没有捕捉到任何东西,并得到一个源自“抛出”行的“未处理异常”。我在这里一无所知。
【问题讨论】:
-
因为它是在另一个线程的上下文中运行的。
-
你在哪里读到这会起作用?
-
这对我有用。您可能会在调试器中看到已处理的异常。
-
@JonSkeet Unreachable code 是唯一的警告,而不是错误。
-
@ScottChamberlain:Doh,你是对的。糟糕 :) (这是 Java 中的一个错误……我只能为自己辩护,虽然它很弱,但它显然只是作为警告出现的,我只是没有正确阅读它!)