13

使用 Visual Studio 2010 调试器,我熟悉使用“调用堆栈”窗口查看当前执行的函数是从何处调用的。

我正在使用一些具有相当大块的应用程序try。假设我在块中的断点处暂停代码的执行catch,那么判断异常从 try 块中的哪一行引发的最简单方法是什么?

我知道“堆栈跟踪”包括行号等详细信息,但有没有更简单的方法(例如快捷键)导航回引发异常的代码行?

更新:我想强调我不希望将执行点移回try块;我只是想要一种更简单的方法来了解异常是从哪一行引发的。

4

3 回答 3

14

如果您转到“DEBUG”、“Exceptions...”,然后针对“Common Language Runtime Exceptions”选择“Thrown”。

例外

然后,当您的代码遇到异常时,它将在出现错误的行停止。

于 2013-02-21T20:33:17.653 回答
3

一个解决方案可能是让 VS 在所有异常上中断:

选择菜单ExceptionsDebug,勾选相关的“Thrown”框Common Language Runtime Exceptions

现在 VS 现在应该停止并标记引发异常的行。您可以像往常一样继续,点击播放按钮或 F5。

这样做的缺点是所有异常都会以相同的方式被捕获,如果你有很多异常,这可能会很烦人。

于 2013-02-21T20:11:17.127 回答
0

对于 Visual Studio 2019:

转到Debug-> Windows->Exception Settings并在Common Language Runtime Exceptions.

在此处输入图像描述

于 2020-08-26T13:36:03.377 回答