我正在调试一个生产应用程序,它有一堆空的 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 及更高版本)会告诉你它是什么类型的异常。
点击Ctrl++Alt以E显示异常选项对话框并将其打开。
你不能在那个时候添加一个异常并检查它吗?
@sectrean
这不起作用,因为如果没有使用它,编译器会忽略 Exception ex 值。