繁体   English   中英

Visual Studio 2008/2010 SP1,如何跳出catch?

[英]Visual Studio 2008/2010 SP1, how to jump back out of a catch?

我正在使用调试器(vs2008)。

一旦我进入了catch语句,我想知道是否有任何方法可以将执行光标设置回try的开头。

只是拖动它似乎没有用,我需要改变一些设置吗?

例:

try 
{
    //Want the cursor back here
}
catch
{
    //some code, cursor is here...
}

显然,它取决于您使用的.NET运行时的风格。 在我第一次写这篇文章的时候,当我尝试它时,它对我来说很好,但我正在使用我的工作PC,安装了32位操作系统。

我正在使用此代码段来测试:

try
{
    throw new Exception();
}
catch
{
    Console.WriteLine("Error");  // Breakpoint here
}

您不能将光标设置在try行上。 它将在紧随其后的行上(块语句的打开)。

当我编译x86的.NET程序时,将光标拖动到该行或try行对我来说很好。 如果您运行的是32位操作系统,它也可以工作。 但是,当您在64位环境中并为任何CPUx64编译时,您将收到以下错误消息:

无法将下一个语句设置为此位置。尝试解除callstack失败。

由于这仅用于调试目的,因此可能的解决方法是为x86编译,因此将使用32位运行时。 转到“ 生成”菜单,然后选择“ 配置管理器” Platform下 ,选择x86New ...如果它当前不在列表中。 在后一种情况下,您将获得一个新对话框。 选择如下所示的选项,然后单击“确定”:

新项目平台

如果我右键单击并执行“set next statement”,则会出现以下错误对话框:

无法将下一个语句设置为此位置。 尝试解除callstack失败。

在以下情况下无法展开:

  1. 通过即时调试启动调试。
  2. 放松正在进行中。
  3. 抛出了System.StackOverflowException或System.Threading.ThreadAbortException异常。

通过消除你不能移动光标的原因(与设置下一个语句相同)必须是#2。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM