Visual Studio - 从异常中返回

ief*_*fpw 3 c# exception visual-studio-2010 visual-studio

如何处理在Visual Studio 2012中调试/运行的程序,该程序显示未处理的异常并且程序停止(我的程序有错误)?有没有办法在异常发生之前将程序上的堆栈返回到上一行?

现在,只要程序中有异常,我就必须重新启动程序并捕获(在我的情况下,这需要很长时间).我想在Visual Studio中抛出/显示异常之后返回异常行之前的前一行并从那里开始.

有没有办法在Visual Studio中执行此操作?任何命令或按钮?

像这样:

line 1: object _hello = GetSomeObject()

line 2: if(_hello.Property == true) {
} // exception line - _hello is null
Run Code Online (Sandbox Code Playgroud)

我想在不停止调试的情况下返回同一实例中的第1行.

Kev*_*Kev 7

一旦抛出异常就无法回溯,您需要首先使用调用堆栈来识别异常的发生方式,然后在它之前设置一个断点.

下次调试代码时,当调试器到达断点时,您可以将箭头指针向上拖动到上一行以将执行回溯到该行,然后使用Watch/Quick Watch等.

可以通过调试菜单 - >其他Windows - >调用堆栈在VS2012中访问调用堆栈.

一旦查看了调用堆栈,您就会知道程序如何达到异常条件,从而知道断点的设置位置.这取决于你的情况,但只是使用调用堆栈和intellisense可以解决你的问题,而无需单步执行代码.