try ブロックにあるアクティブ ステートメントを含む catch/finally ハンドラーを変更すると、エディット コンティニュが有効なとき、デバッグ セッションを続行できなくなります。
このエラーは、try ブロックにアクティブなステートメントが存在する catch ハンドラーや finally ハンドラーを編集しようとすると発生します。 このエラーが発生するのは、アクティブなフレームが呼び出し履歴の最上位にない場合です。 エディット コンティニュは、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 に変更すると、このエラーが発生します。
このエラーを解決するには
変更を元に戻し、変更のない状態でデバッグを継続します。 ステートメントがアクティブでない場合は、後で変更できます。
または
[デバッグ] メニューの [デバッグの停止] をクリックし、変更を加えた後で新しいデバッグ セッションを開始します。