我正在使用調試器(vs2008)。Visual Studio 2008/2010 SP1,如何跳出一個catch?
一旦我進入catch語句,我想知道是否有任何方法將執行光標設置回try的開頭。
只是拖動它似乎沒有工作,是否有一些設置我需要改變?
例子:
try
{
//Want the cursor back here
}
catch
{
//some code, cursor is here...
}
我正在使用調試器(vs2008)。Visual Studio 2008/2010 SP1,如何跳出一個catch?
一旦我進入catch語句,我想知道是否有任何方法將執行光標設置回try的開頭。
只是拖動它似乎沒有工作,是否有一些設置我需要改變?
例子:
try
{
//Want the cursor back here
}
catch
{
//some code, cursor is here...
}
顯然,這取決於你所使用的.NET運行時的味道。在我第一次寫這篇文章的時候,我嘗試了它的時候效果很好,但是我正在使用我的工作電腦,安裝了32位操作系統。
我使用此代碼段進行測試:
try
{
throw new Exception();
}
catch
{
Console.WriteLine("Error"); // Breakpoint here
}
你不能設置在try
行的光標。它將在緊隨其後的行之後(塊聲明的開始)。
將光標拖到該行或try
行對我編譯.NET程序for x86時正常工作。如果您正在運行32位操作系統,它也可以工作。但是,當你在64位環境和編譯任何CPU或,您將收到以下錯誤消息:
由於這是僅用於調試的目的,可能的解決方法是爲x86編譯,因此將使用32位運行時。轉至Build菜單並選擇配置管理器。在平臺,請選擇x86或新...如果它目前不在列表中。在後一種情況下,你會得到一個新的對話框。挑選的選項,如下圖所示,然後單擊OK:
我不這麼認爲。當在catch塊內時,我們不能跳回來嘗試塊 – 2011-04-05 04:59:58
@Nam Gi VU:我已經做了更多的調查並更新了響應。這也許可以解釋爲什麼當你遇到問題時,它爲我工作。 – Thorarin 2011-04-10 08:08:42
如果我右擊並執行「設置下一條語句」然後我得到了下面的錯誤對話框:
無法設置下一條語句到這個位置。解除調用堆棧的嘗試失敗。
平倉是不可能在下列情況:
- 調試經剛剛在實時調試開始。
- 放鬆正在進行中。
- System.StackOverflowException或System.Threading.ThreadAbortException異常已被引發。
通過消除不能移動光標(與設置下一條語句相同)的原因必須是#2。
「放鬆」究竟是什麼。請向我解釋。謝謝! – 2011-04-05 06:28:45
@Nam看到[這個問題](http://stackoverflow.com/questions/2005606/net-what-is-an-unwind),這實際上是由我的問題,因爲這個答案! :-) – Justin 2011-04-05 06:54:52
可愛。我將把你的問題作爲其餘的模板,如果你沒有問及即時調試和不能跳回異常的原因 – 2011-04-06 09:34:51
我和你有同樣的問題 – 2011-04-05 06:23:14
我已經更新了我的答案。顯然它與32位和64位環境有關。 – Thorarin 2011-04-10 08:28:13