Por que o loop do Visual Studio ao depurar eventos UnhandledException

(Isso parece muito semelhante aoC # UnhandledException de outro segmento mantém loop, mas não estou tentando pegar a exceção aqui, apenas tenha a chance de logar alguma coisa)

Eu tenho alguns códigos C # muito simples que configura um manipulador de eventos UnhandledException, em seguida, lança uma exceção:

class Program
{
    static void Main(string[] args)
    {
        AppDomain currentDomain = AppDomain.CurrentDomain;
        //currentDomain.UnhandledException += new UnhandledExceptionEventHandler(currentDomain_UnhandledException);

        currentDomain.UnhandledException += (sender, eventArgs) =>
            {
                var exception = (Exception) eventArgs.ExceptionObject;

                Console.WriteLine("Unhandled exception: " + exception.Message);
            };

        throw new AccessViolationException("Bleurgh");
    }
}

Ele se comporta como eu esperava no console:

Unhandled exception: Bleurgh
Unhandled Exception: System.AccessViolationException: Bleurgh
    at UnhandledExceptions.Program.Main(String[] args) in c:\code\sandbox\UnhandledExceptions\UnhandledExceptions\Program.cs:line 20

Mas quando eu tento depurá-lo no Visual Studio ele entra em um loop, indo para o manipulador de eventos, em seguida, soltando para retroceder a exceção.

A mesma coisa acontece quando eu expresso o manipulador como um método estático distinto.

Alguma ideia sobre o que se passa?

Isso está no Visual Studio 2010. EDIT: e .NET 4.

questionAnswers(2)

yourAnswerToTheQuestion