Я просто встретил странное поведение с обработкой исключений в .Net. (Я использую C# в MS Visual Studio 2008, но один из вопросов, который я видел здесь, казалось, подразумевал, что то, что я вижу, истинно во всем мире .Net) Я пишу обычное приложение WinForm. Я намеренно вызываю необработанное исключение, которое должно быть брошено внутри обработчика события form_load вне любого блока try. Я не получаю уведомления. Если необработанное исключение возникает в обычном методе, появляется сообщение о том, что произошло исключение, и предоставил мне некоторую информацию о проблеме. Но в обработчике код просто тихо выходит из функции, не давая понять кому-то, что это произошло. Если я добавлю блок try/catch, исключение поймается, как ожидалось.Исключение не обрабатывается в событии загрузки формы
Верно ли, что это происходит во всех обработчиках событий? И это ожидаемое поведение? И если да, то это потому, что существует слишком большая опасность возникновения плохих вещей, если обработчик событий неожиданно останавливается?
Возможно, вы создали UnhandledThreadExceptionEventHandler? –
Из того, что я читал, это похоже на ту же проблему, что и этот [вопрос] http://stackoverflow.com/questions/10647551/exceptions-not-being-raised-in-c-just-kicks-out-of-of- the-regular-is-this-a-bug/10652522 # 10652522 – Stephan
Благодарим вас за ответ. Вопрос, на который вы ссылаетесь, говорит о поведении при отладке внутри Visual Studio. Я наблюдал это поведение как внутри, так и снаружи VS. Однако я признаю, что оба раза был сборкой отладки. Я не пробовал свой тест в сборке релизов. –