在空的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值。