Beim Debuggen einer Konsolenanwendung bleibt Visual Studio in einer Ausnahmemeldeschleife stecken. Warum?

Betrachten Sie diese einfache Konsolenanwendung:

using System;

namespace Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            throw new Exception();
        }
    }
}

Ich führe dies unter dem Debugger in Visual Studio 2010 oder Visual Studio 2012 Beta aus.

Wenn ich das tue, stoppt der Debugger natürlich bei der Ausnahme. Okay so weit.

Wenn ich jedoch F5 drücke, um fortzufahren (oder "Debuggen | Fortfahren" zu wählen), wird der Vorgang bei derselben Ausnahme erneut beendet. Ich muss das Debuggen beenden, damit das Programm beendet wird. Ich habe erwartet, dass das Programm beendet wird, wenn ich F5 drücke.

Weiß jemand, warum es sich so verhält wie es ist?

[BEARBEITEN]

Ich habe eine Antwort als Antwort markiert, aber um eine merkwürdige Konsequenz des Debuggerverhaltens zu sehen, betrachten Sie den folgenden Code:

using System;

namespace Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
            throw new Exception();
        }

        static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            Console.WriteLine("Unhandled Exception.");
        }
    }
}

Führen Sie dies unter dem Debugger aus und drücken Sie mehrmals die Taste F5. Schauen Sie sich dann die Ausgabe an. Es werden viele "Unhandled Exception" -Nachrichten angezeigt, obwohl der Code diesen nur einmal auslöst. Der Debugger löst die Ausnahme mehrmals aus! Das finde ich seltsam.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage