【发布时间】:2010-11-01 03:54:54
【问题描述】:
是否有任何插件可以让我暂时禁用所有 catch 块。我正在维护一个应用程序,我需要找出它到底在哪里抛出异常。有人已经完成了错误处理,所有层都让我的工作变得艰难:(
【问题讨论】:
标签: c# .net visual-studio debugging exception
是否有任何插件可以让我暂时禁用所有 catch 块。我正在维护一个应用程序,我需要找出它到底在哪里抛出异常。有人已经完成了错误处理,所有层都让我的工作变得艰难:(
【问题讨论】:
标签: c# .net visual-studio debugging exception
我不知道禁用 catch 块的方法,但您尝试实现的目标可以通过异常对话框中的 VS 选项轻松完成:
Debug -> Exceptions -> CLR Exceptions -> Check the "Thrown" checkbox.
这样,VS 会在抛出异常时立即中断,然后再运行任何 catch 块。
【讨论】:
您无需禁用所有 catch 块来识别异常首先从哪里引发 - 在调试器中。如果您在 VS 中打开“异常”对话框,您可以将调试器配置为在异常未处理(默认)或首次抛出时捕获异常。这是最简单且干扰最小的方法。
可以从“调试”菜单访问“异常”对话框。
【讨论】:
您应该使用“调试”>“异常”菜单来调出“异常”对话框,然后在您希望开发环境在调试期间中断的任何类型的异常上选中“抛出”复选框。
在异常处理发生之前,当特定异常(或其任何子类)被抛出时,您会发现 VS 会中断。
这会解决你的问题。
【讨论】:
我发现通常更有趣的是堆栈窗口。
在调试模式下,运行项目,去
Debug => Window => Call stack (Ctrl+d, C)
现在您可以看到要执行的步骤,您可以 d-单击它们以转到代码行。我觉得它真的很方便。
【讨论】: