Dlaczego pętla Visual Studio podczas debugowania zdarzeń UnhandledException
(Wygląda to bardzo podobnieC # UnhandledException z innego wątku jest zapętlony, ale nie próbuję złapać wyjątku tutaj, po prostu dostań szansę na zalogowanie się)
Mam bardzo prosty kod C #, który ustawia moduł obsługi zdarzenia UnhandledException, a następnie zgłasza wyjątek:
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");
}
}
Zachowuje się tak, jak oczekuję od konsoli:
Unhandled exception: Bleurgh
Unhandled Exception: System.AccessViolationException: Bleurgh
at UnhandledExceptions.Program.Main(String[] args) in c:\code\sandbox\UnhandledExceptions\UnhandledExceptions\Program.cs:line 20
Ale kiedy próbuję go debugować w Visual Studio, wchodzi w pętlę, przechodząc do obsługi zdarzeń, a następnie wycofując się, aby ponownie rzucić wyjątek.
To samo dzieje się, gdy wyrażam przewodnik jako odrębną metodę statyczną.
Jakieś pomysły, co się dzieje?
To jest w Visual Studio 2010. EDIT: i .NET 4.