Встречается на собеседованиях • сегодня

Возникнет ли ошибка компиляции при делении на 0 в try, если блок catch возвращает ошибку, а finally возвращает "finally"

В Java деление на целый ноль (int/0) выбросит ArithmeticException, а деление на 0.0 (double/0.0) вернет Infinity. В данном случае:

java
try {
    int x = 5 / 0; // ArithmeticException
} catch (Exception e) {
    return "error"; // вернет "error"
} finally {
    return "finally"; // переопределит возврат из catch
}

Результат будет "finally", так как finally выполнится в любом случае и переопределит возвращаемое значение, даже если в catch было возвращено другое значение. Ошибки компиляции не будет.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы