有没有任何附加组件可以临时禁用所有catch块? 我正在维护一个应用程序,我需要找出它在哪里抛出异常。 某人已经在所有层中完成了错误处理,使我的工作变得更加困难 :(
有没有任何附加组件可以临时禁用所有catch块? 我正在维护一个应用程序,我需要找出它在哪里抛出异常。 某人已经在所有层中完成了错误处理,使我的工作变得更加困难 :(
我不知道如何禁用catch块,但你想要实现的目标可以通过VS选项中的异常对话框轻松完成:
Debug -> Exceptions -> CLR Exceptions -> Check the "Thrown" checkbox.
这种方法可以让VS在执行任何catch块之前立即中断抛出异常。
你不需要禁用所有 catch 块来确定异常最初是从哪里引发的 - 在调试器中。如果在 VS 中打开异常对话框,您可以配置调试器在异常未处理时(默认)或在首次抛出异常时捕获异常。这是最简单和最不会干扰的方法。
异常对话框可从“调试”菜单中访问。
您应该使用“调试”>“异常”菜单来打开异常对话框,并在任何您想要在调试期间使开发环境中断的异常类型上选择复选框“抛出”。
您会发现,当特定异常(或其任何子类)被抛出时,VS会在异常处理之前中断。
这将解决您的问题。
我发现更有趣的是堆栈窗口。
当在调试模式下运行项目时,进入
Debug => Window => Call stack (Ctrl+d, C)
现在你可以看到采取了哪些步骤来到这里,你可以双击它们以跳转到代码行。我觉得这非常方便。