234
правки
Изменения
→Обработка исключений
Код из блока finally выполнится в любом случае: при нормальном выходе из try, после обработки исключения или при выходе по команде return. Блок finally удобен для закрытия файлов и освобождения любых других ресурсов.
NB: Если JVM выйдет во время выполнения кода из try или catch, то finally блок может не выполниться. Также, например, если (?) поток выполняющий try или catch код прерван, то блок finally может не выполниться, даже если приложение продолжает работать.
Код в блоке finally должен быть максимально простым: например, если внутри блока finally будет брошено какое-либо исключение или просто встретится оператор return, брошенное в блоке try исключение (если таковое было брошено) будет забыто.
}
После того, как было брошено первое исключение - new Exception("a") - будет выполнен блок finally, в котором будет брошено исключение new IOException("b"), именно оно будет поймано и обработано. Результатом его выполнения будет вывод в консоль ''b''. Исходное исключение теряется.
==Исключения в Java7+==