Есть ли такой случай когда в блоке try \ finally команда finally не будет выполнена?

Я учусь для своего теста в объектно-ориентированном программировании, и мне было интересно, есть ли какой-нибудь случай, если учесть следующий код:

try {
    do something
} catch (someException e) {

} finally {
    do something
}

the наконец, блок не будет выполнен?

13
задан Bill the Lizard 16 September 2012 в 22:09
поделиться

3 ответа

Да. Если вы разбиваете виртуальную машину Java или иным образом портите вещи через собственный код, вызываете завершение программы или бесконечно зацикливаетесь / ждете внутри блока try .

Это единственные три случая, в которых можно избежать выполнения блока finally .

17
ответ дан 1 December 2019 в 21:51
поделиться

Если вы вызываете System.exit (0) в , попробуйте . Или сделайте что-то, что заставляет JVM завершать работу или зависать (например, в тупике). В противном случае - нет.

5
ответ дан 1 December 2019 в 21:51
поделиться

Спецификация языка Java гарантирует, что finally будет вызван до завершения оператора try.

Оператор try может не завершиться по обычным причинам, которые были перечислены в ответе Borealid.

2
ответ дан 1 December 2019 в 21:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: