«external finally» запускается сразу после обработки исключения.
Вот результат выполнения этого кода вне отладчика:
inner catch
inner finally
outer catch
Unhandled Exception: System.NullReferenceException: Object reference not set to
an instance of an object.
at SOConsole.Program.Main() in c:\Users\DaveShaw\Documents\Visual Studio 11\Pro
jects\SO\SOConsole\Program.cs:line 35
outer finally
Press any key to continue . . .
Когда произошло исключениебыло отображено следующее:
После того, как я нажал «Отмена», приложение возобновило работу и отобразило «внешний окончательный вариант».
Если по какой-либо причине вы закрываете свое приложение до того, как оношанс войти во «внешнее окончание», тогда вы никогда не увидите своего сообщения.Если процесс приложения "завершен", то, наконец, пропускаются, если они содержат код, который препятствует закрытию приложения.В противном случае может быть невозможно завершить этот процесс.