我可以以编程方式启用/禁用异常中断吗?

Ant*_*ert 11 .net c# exception pragma visual-studio

我希望能够在调试时中断异常...就像在Visual Studio 2008的菜单调试/异常对话框中一样,除了我的程序在到达我希望调试的位之前有许多有效的异常.

因此,不是每次都使用对话框手动启用和禁用它,而是可以使用#pragma或其他方法自动执行它,因此它只发生在特定的代码段中?

Kri*_*isG 7

接近这一点的唯一方法是在您的方法上放置DebuggerNonUserCodeAttribute.

这将确保标记方法中的任何异常都不会导致异常中断.

这里好好解释一下 ......

这是一个属性,你对一个方法告诉调试器"与我没关系guv'.不是我的代码!".容易上当的调试器会相信你,并且不会破坏该方法:使用该属性会使调试器完全跳过该方法,即使是在单步执行代码时也是如此; 发生的异常,然后在方法中捕获将不会进入调试器.它会将它视为对Framework程序集的调用,如果异常未处理,则会在调用该方法的代码中向调用堆栈报告一级.

代码示例:

public class Foo
{
    [DebuggerNonUserCode]
    public void MethodThatThrowsException()
    {
        ...
    {
}
Run Code Online (Sandbox Code Playgroud)