А всё Дэвид. Вот список причин исполнения finally если try закончен:
// 1) нормальным образом, достигнув конца блока
// 2) изза инструкции break, continue или return
// 3) с исключением, обработанным приведенным ранее блоком catch
// 4) с неперехваченным исключением, которое продолжает свое
// распространение на более высокие уровни
Кстате break можно заюзать с меткой
Кстате break без метки еще и в switch ошибки не даёт