Java return в finally после return

Вот такое вот замысловатое название статьи. Небольшая заметка, чтобы не забыть.

Код 1:

Но если уберём эту строчку, то получим код 2:

Теперь этот код уже сработает. Причём на экран выведет цифру 2, так как return 2  в finally  перезапишет первоначальный результат.

Теперь ещё более сложный вариант:

Здесь уже результатом будет число 3. Сначала при делении на 0 бросается исключение. Мы его перехватываем и возвращаем из функции 2. Затем отрабатывает finally, который переопределяет результат на 3.

Зачем стоит знать подобные штучки? Заковырки наподобие этого очень любят задавать на собеседованиях. В реальной же разработке они вам никогда не пригодятся. Оба кода представляют из себя просто ужасный стиль программирования. Более полезную информацию про try-catch  можно прочесть в статье «Java 8 исключения».

 


Поделиться:

Добавить комментарий

Ваш e-mail не будет опубликован.

*