啟用 [編輯後繼續] 時,在 try 區塊中藉由使用中陳述式修改 catch/finally 處理常式會阻礙偵錯工作階段繼續進行
當您嘗試編輯 catch 或 finally 處理常式,而處理常式中的 try 區塊含有使用中陳述式時,就會發生這個錯誤。 只有在使用中框架不是位於呼叫堆疊的頂端時,才會發生這個錯誤。 [編輯後繼續] 會將 catch 或 finally 處理常式標示為唯讀,因此這個錯誤只會發生在不尋常的狀況中。
請考慮下列範例程式碼:
#define EXAMPLE
class Program
{
static void Example()
{
...
}
static void Main(string[] args)
{
try
{
Example();
}
#if EXAMPLE
catch
{
...
}
#else
catch(exception e)
{
...
}
#endif
}
}
如果您在對 Example 的呼叫上設定中斷點,然後將 #define EXAMPLE 變更為 #define EXAMPLE2,就會發生這個錯誤。
若要修正這個錯誤
復原變更,然後在不變更的情況下繼續進行偵錯作業。 稍後陳述式不再使用時,您可以進行變更。
-或-
在 [偵錯] 功能表上按一下 [停止偵錯],進行變更,然後開始新的偵錯工作階段。