在捕获异常时,如何将该异常的堆栈跟踪显示在停靠的窗格中?
目前在逐步执行时,每当一个异常被 抛出并且被捕获 时,我都会看到一个小对话框,需要同时进行水平和垂直滚动才能看到堆栈跟踪,这样的使用方式并不现实。
因此我必须执行以下操作(在逐步运行代码直到异常发生时):
- 点击“View Details”
- 然后将鼠标移到堆栈跟踪右侧的那个小小的“View”框并点击它。
接着获取堆栈跟踪,但不能将其与其他窗口(Output、Locals等)停靠,也无法查看代码,因为即使把堆栈跟踪窗口移到一边,也无法把异常的“Quick Watch”对话框移开,因为堆栈跟踪窗口是它的模态对话框:
[我对问题进行了修改,补充了一个在评论/回答中提醒后才意识到的重要点——这是异常被try-catch块捕获时的情形。感谢各位评论者/回答者。]



解决方案
在点击“View Details”后打开的QuickWatch窗口中,你可以单击 StackTrace 属性并选择“Add Watch”:
这将会在Watch窗口中添加一个 $exception.StackTrace 表达式,像管理其他窗口一样管理它们,包括在界面中将它们停靠。
$exception 是VS在异常调试上下文中使用的一个局部变量,因此你可以在其他表达式上下文中使用它(例如Immediate窗口)。当当前没有异常活动时,该变量未定义,对应的Watch窗口行将显示错误。
你可以使用Watch窗口在调试期间监视变量和表达式。共有四个可用,你可以使用其中任意一个并分别管理它们。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

