在空的catch块中调试异常

时间:2020-03-05 18:46:32  来源:igfitidea点击:

我正在调试一个生产应用程序,该应用程序有很多空的捕获块叹息:

try {*SOME CODE*}
catch{}

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

解决方案

回答

我们不能在那时添加一个例外并检查它吗?

回答

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

回答

在VS中,如果在catch块内查看IDE的Locals区域,将产生$ EXCEPTION的作用,它将具有刚刚捕获的异常的所有信息。

回答

你可以写

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值。