次の方法で共有


C# エディット コンティニュ: エラー 4032

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 に変更すると、このエラーが発生します。

このエラーを解決するには

  • 変更を元に戻し、変更のない状態でデバッグを継続します。 ステートメントがアクティブでない場合は、後で変更できます。

    または

    [デバッグ] メニューの [デバッグの停止] をクリックし、変更を加えた後で新しいデバッグ セッションを開始します。

参照

参照

try-catch-finally (C# リファレンス)

サポートされているコード変更 (C#)

エディット コンティニュ (Visual C#)

その他の技術情報

エディット コンティニュのエラーと警告 (C#)