簡體   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