четверг, 6 сентября 2007 г.

Java Puzzle 36: Indecision

Что возвращает следующий метод, true или false?
boolean isValid() {
    try {
        return true;
    } finally {
        return false;
    }
}

Метод вернет false, согласно JLS 14.20.2: в выражении try-finally блок finally всегда выполняется, когда управление уходит из блока try. Авторы рекомендуют никогда не покидать блок finally с помощью return, break, continue or throw. Это небезопасно!

Комментариев нет:

Отправить комментарий