Что происходит в программе на C #, если исключение не обнаружено. Программа «вылетает» с чем-то вроде ошибки во время выполнения?
Может быть.
Возможно, нет.
Что происходит, определяется реализацией .
Например, вы можете получить диалоговое окно, в котором говорится, что «произошло необработанное исключение, и я вижу, что у вас установлена Visual Studio. Хотите запустить отладчик и проверить состояние программы?»
Может появиться диалоговое окно, в котором говорится: «Произошло необработанное исключение, вы хотите сообщить об этом в Microsoft?»
Если вы уже работаете в отладчике, отладчик, вероятно, что-то делает, чтобы привлечь ваше внимание.
Среде выполнения разрешено делать все, что она хочет, и это включает в себя вопрос о том, что делать.
Обратите внимание, что среда выполнения знает о том, будет ли блок перехвата или нет до запуска блоков finally. Вы можете легко продемонстрировать это с помощью консольного приложения. Напишите приложение, которое вылетает, и выводит его в блок finally:
Unhandled Exception: System.Exception: Exception of type
'System.Exception' was thrown at
ConsoleApplication1.Program.Main(String[] args)
finally running now
Видите, что происходит? Среда выполнения сообщает об ошибке, дает отладчику возможность запуска или сообщает о проблеме в Microsoft, или что-то в этом роде, за до он запускает блоки finally. Если они вообще бегут. Они не могут. Может произойти все, что угодно . Пользователь может решить уничтожить процесс или запустить отладчик и исправить исключение или что-то еще.
Если вы действительно хотите понять, как работают исключения в C #, вам следует прочитать это:
http://blogs.msdn.com/b/cbrumme/archive/2003/10/01/51524.aspx