finally ブロックがアクティブなときに try/catch/finally ステートメントを変更すると、エディット コンティニュが有効なとき、デバッグ セッションを続行できなくなります。
このエラーは、対応する finally ブロックにアクティブ ステートメントが含まれるときに、try ステートメント、catch ステートメント、または finally ステートメントを編集しようとすると発生します。 このエラーは、アクティブ ステートメントを含むフレームが呼び出し履歴の先頭に存在しない場合にのみ発生します。 詳細については、「アクティブなステートメント」を参照してください。
次のプログラム例について考えてみます。
class Program
{
static void Example() { }
static void Main(string[] args)
{
try
{
int a = 100;
}
finally
{
Example();
}
}
}
Example の呼び出しにブレークポイントを設定してデバッグを開始した後、a = 100 を a = 10 に変更しようとすると、このエラーが発生します。
このエラーを解決するには
変更を元に戻してデバッグを続行します。 ステートメントがアクティブでない場合は、後で変更できます。
または
[デバッグ] メニューの [デバッグの停止] をクリックし、変更を加えた後で新しいデバッグ セッションを開始します。