8

我正在调试一个生产应用程序,它有一堆空的 catch 块叹息

try {*SOME CODE*}
catch{}

当调试器在 IDE 中遇到问题时,有没有办法查看异常是什么?

4

7 回答 7

11

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

于 2008-09-02T15:41:12.907 回答
3

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

于 2008-09-02T15:40:32.860 回答
1

你可以写

catch (Exception ex) { }

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

于 2008-09-02T15:41:22.123 回答
1

不,这是不可能的,因为那个代码块说“我不关心异常”。您可以使用以下代码进行全局查找和替换以查看异常。

catch {}

与以下

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

这样做的目的是让您当前无所事事地捕获生产代码,但是当在 DEBUG 中运行时,它将允许您在对象 o 上设置断点。

于 2008-09-02T15:41:39.503 回答
1

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

点击Ctrl++AltE显示异常选项对话框并将其打开。

于 2008-09-02T15:44:34.147 回答
0

你不能在那个时候添加一个异常并检查它吗?

于 2008-09-02T15:40:06.997 回答
0

@sectrean

这不起作用,因为如果没有使用它,编译器会忽略 Exception ex 值。

于 2008-09-02T15:44:40.870 回答