Почему Visual Studio зацикливается при отладке событий UnhandledException
(Это выглядит очень похоже наC # UnhandledException из другого потока продолжает цикл, но я не пытаюсь поймать исключение здесь, просто получить шанс что-то записать)
У меня есть очень простой код C #, который устанавливает обработчик события UnhandledException, а затем выдает исключение:
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");
}
}
Он ведет себя так, как я ожидаю от консоли:
Unhandled exception: Bleurgh
Unhandled Exception: System.AccessViolationException: Bleurgh
at UnhandledExceptions.Program.Main(String[] args) in c:\code\sandbox\UnhandledExceptions\UnhandledExceptions\Program.cs:line 20
Но когда я пытаюсь отладить его в Visual Studio, он входит в цикл, переходит в обработчик событий, а затем выпадает, чтобы сбросить исключение.
То же самое происходит, когда я выражаю обработчик как отдельный статический метод.
Есть идеи, что происходит?
Это в Visual Studio 2010. EDIT: и .NET 4.