次の方法で共有


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

更新 : 2007 年 11 月

エラー メッセージ

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#)