Stop visual studio from breaking on exception in Tasks

北慕城南 提交于 2019-11-27 22:13:43

Ok I found out how to do it. The answer is right here in the note section

When "Just My Code" is enabled, Visual Studio in some cases will break on the line that throws the exception and display an error message that says "exception not handled by user code." This error is benign. You can press F5 to continue and see the exception-handling behavior that is demonstrated in these examples. To prevent Visual Studio from breaking on the first error, just uncheck the Enable Just My Code checkbox under Tools, Options, Debugging, General.

From the point of view of VS there really isn't any different between the exception being thrown from within a delegate pass to a Task from any other exception.

There is no way to solve this in the general case.

However, the one thing that you could do is leverage the fact that when the exception is re-thrown it's wrapped in an AggregateException. You could break when an AggregateException is thrown but not other exceptions.

You can go to Debug -> Exceptions, unselect all CLR exceptions, but then re-enable aggregate exceptions:

It will now not pause in the Task body but will pause the debugger when you call Wait.

The unfortunate side effect is that you'll now no longer pause for any other exceptions anywhere else in your program, even if they're not in a delegate passed to a Task.

To turn off stop on exceptions press " Ctrl + Alt + E ". This will open the Exceptions window . Untick "Common Language Runtime Exceptions - Thrown".

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!