Да.
Смысл finally
заключается в том, чтобы гарантировать выполнение некоторого кода очистки независимо от того, какой путь код использует для выхода из блока try
.Это происходит при обычном возврате, когда выбрасывается и перехватывается исключение, и когда выдается исключение, которое не перехватывается этим блоком try
.Единственное, что помешает его выполнению, - это если программа вообще не может покинуть блок try
;внутри него бесконечный цикл, или процесс, убиваемый каким-либо способом, который препятствует нормальной обработке, или что-то в этом порядке.Я почти уверен, что даже если вы выйдете из процесса из блока try
, блок finally
будет выполнен до того, как процесс на самом деле умрет.