¿Por qué Visual Studio realiza un bucle cuando se depuran eventos UnhandledException?
(Esto se ve muy similar aC # UnhandledException de otro hilo mantiene bucle, pero no estoy intentando capturar la excepción aquí, solo tengo la oportunidad de registrar algo)
Tengo un código C # muy simple que configura un controlador de eventos UnhandledException, luego lanza una excepción:
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");
}
}
Se comporta como espero de la consola:
Unhandled exception: Bleurgh
Unhandled Exception: System.AccessViolationException: Bleurgh
at UnhandledExceptions.Program.Main(String[] args) in c:\code\sandbox\UnhandledExceptions\UnhandledExceptions\Program.cs:line 20
Pero cuando intento depurarlo en Visual Studio, entra en un bucle, y entra en el controlador de eventos y luego se retira para volver a generar la excepción.
Lo mismo sucede cuando expreso el controlador como un método estático distinto.
¿Alguna idea de qué está pasando?
Esto está en Visual Studio 2010. EDIT: y .NET 4.