Debugging 调试空catch块中的异常
我正在调试一个有大量空捕获块的生产应用程序:Debugging 调试空catch块中的异常,debugging,exception,ide,try-catch,Debugging,Exception,Ide,Try Catch,我正在调试一个有大量空捕获块的生产应用程序: 当调试器点击IDE中的捕获时,是否有办法查看异常是什么?您就不能在该点添加一个异常并检查它吗?在Visual Studio中-Debug->Exceptions->在VS中通过抛出列中的“Common Language Runtime Exceptions”选中该框,如果您在catch块内查看IDE的Locals区域,您将得到$EXCEPTION的效果,它将包含刚刚捕获的异常的所有信息。您可以编写 catch (Exception ex) { }
当调试器点击IDE中的捕获时,是否有办法查看异常是什么?您就不能在该点添加一个异常并检查它吗?在Visual Studio中-Debug->Exceptions->在VS中通过抛出列中的“Common Language Runtime Exceptions”选中该框,如果您在catch块内查看IDE的Locals区域,您将得到$EXCEPTION的效果,它将包含刚刚捕获的异常的所有信息。您可以编写
catch (Exception ex) { }
然后,当在这里抛出并捕获异常时,您可以检查例如。不,这是不可能的,因为代码块说“我不关心异常”。您可以使用以下代码进行全局查找和替换以查看异常
catch {}
有以下几点
catch (Exception exc) {
#IF DEBUG
object o = exc;
#ENDIF
}
这将使您的当前生产代码保持不执行捕获,但在调试中运行时,它将允许您在对象o上设置断点。如果您使用Visual Studio,则无论是否未处理异常,只要抛出异常,都可以选择断开。当抛出异常时,异常助手(可能只有VS2005和更高版本)会告诉您它是什么类型的异常 点击Ctrl+Alt+E打开异常选项对话框并打开它。@sectrean
这不起作用,因为如果没有使用异常值,编译器会忽略该异常值。这是我最终使用的机制-我找不到一种方法来查看AdamB描述的隐藏异常,尽管要小心。如果您使用MVC应用程序执行此操作,您会惊讶于在每个请求中捕获了多少异常。抱歉,应该更清楚一些-我无法更改代码-我只是试图跟踪一些错误您需要手动将令牌
$exception
添加到监视窗口。
catch (Exception exc) {
#IF DEBUG
object o = exc;
#ENDIF
}