我正在调试一个有大量空 catch 块的生产应用程序 :

try {*SOME CODE*}
catch{}

当调试器在 IDE 中捕获异常时,有没有办法查看异常是什么?

有帮助吗?

解决方案

在 VS 中,如果您在 catch 块内查看 IDE 的 Locals 区域,您将看到 $EXCEPTION 的效果,其中包含刚刚捕获的异常的所有信息。

其他提示

在 Visual Studio 中 - 调试 -> 异常 -> 选中抛出列中的“公共语言运行时异常”框

你可以写

catch (Exception ex) { }

然后,当异常被抛出并在这里捕获时,您可以检查 ex.

不,这是不可能的,因为该代码块说“我不关心异常”。您可以执行全局查找并替换为以下代码以查看异常。

catch {}

与以下

catch (Exception exc) {
#IF DEBUG
    object o = exc;
#ENDIF
}

这样做的目的是保持当前的生产代码不执行任何操作,但是在 DEBUG 中运行时,它将允许您在对象 o 上设置断点。

如果您使用的是 Visual Studio,则可以选择在引发异常时中断,无论异常是否未处理。当异常抛出时,异常助手(可能只有VS 2005及更高版本)会告诉你它是什么类型的异常。

控制键+替代+ 打开例外选项对话框并将其打开。

难道你不能在此时添加一个异常并检查它吗?

@sectrean

这是行不通的,因为如果没有任何东西使用它,编译器会忽略 Exception ex 值。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top