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
}