我读过的所有地方都说下面的代码应该可以,但是不能。
public async Task DoSomething(int x)
{
try
{
// Asynchronous implementation.
await Task.Run(() => {
throw new Exception();
x++;
});
}
catch (Exception ex)
{
// Handle exceptions ?
}
}
就是说,我什么也没抓到,而是从“ throw”行得到了“未处理的异常”。我在这里一无所知。
您已打开“仅我的代码”选项。在此之后,它正在考虑就“仅代码”而言未处理的异常-因为其他代码正在捕获该异常并将其填充到Task中,随后在await
调用时被重新抛出并由catch语句捕获。
无需附加在调试器中,您的catch语句将被触发,并且将按预期运行。或者,您可以仅在调试器中继续运行,它将按预期运行。
更好的方法是关闭“仅我的代码”。海事组织,它造成的混乱远远超过其价值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句