Podczas debugowania aplikacji konsoli Visual Studio utknie w pętli zgłaszania wyjątków. Czemu?

Rozważ tę prostą aplikację konsoli:

using System;

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

Używam tego pod debugerem w Visual Studio 2010 lub Visual Studio 2012 Beta.

Kiedy to robię, naturalnie debuger zatrzymuje się na wyjątku. Ok, jak dotąd.

Ale po naciśnięciu F5, aby kontynuować (lub wybrać Debuguj | Kontynuuj), ponownie zatrzymuje się na tym samym wyjątku. Muszę przestać debugować, aby program mógł wyjść. Spodziewałem się, że program wyjdzie po naciśnięciu F5.

Czy ktoś wie, dlaczego tak się zachowuje?

[EDYTOWAĆ]

Zaznaczyłem odpowiedź jako odpowiedź, ale aby zobaczyć dziwną konsekwencję zachowania debuggera, rozważ następujący kod:

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.");
        }
    }
}

Uruchom to pod debuggerem i naciśnij F5, ładuj razy, a następnie spójrz na wyjście. Zobaczysz wiele wiadomości „Nieobsługiwany wyjątek”, mimo że kod tylko raz go rzuca. Debuger powoduje wielokrotne wyrzucanie wyjątku! To jest dla mnie dziwne.

questionAnswers(3)

yourAnswerToTheQuestion