Что будет если блок finally выбросит ошибку?

Как известно, последовательность операций, записанная finally, должна выполняется в любом случае, независимо от того появлялась ли ошибка в try.

Если ошибки в try не возникало, то при появлении его в finally оно пойдёт по стеку исключений, до тех пор, пока не придёт в catch.

Более интересен случай, когда исключение было в try, а потом возникло и в finally. Тогда исключение, возникшее в finally, перекроет исключение из блока try, и пойдёт по стеку. Начальная ошибка будет потеряна.

Это усложняет отладку.

Поделиться уроком

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *