Ошибка компилятора недостижимого кода [дубликат] ⇐ JAVA

Программисты JAVA общаются здесь
Anonymous
Ошибка компилятора недостижимого кода [дубликат]

Сообщение Anonymous »

Следующий код выдает ошибку компилятора о недостижимом операторе

Код: Выделить всё

public static void main(String[] args) {
return;
System.out.println("unreachable");
}
Иногда в целях тестирования требуется запретить вызов метода, поэтому быстрый способ сделать это (вместо того, чтобы комментировать его везде, где он используется) — немедленно вернуться из метода, чтобы метод ничего не делал. Чтобы обойти ошибку компилятора, я всегда делаю следующее:

Код: Выделить всё

public static void main(String[] args) {
if (true) {
return;
}
System.out.println("unreachable");
}
Мне просто интересно, почему это ошибка компилятора?? Нарушит ли это каким-то образом байт-код Java, для защиты программиста или что-то еще?

А еще (и это для меня более интересно), если компилировать Java в байт-код выполняет какую-либо оптимизацию (или даже если это не так), тогда почему он не обнаруживает явный недоступный код во втором примере? Каким будет псевдокод компилятора для проверки недостижимости оператора?

Подробнее здесь: https://stackoverflow.com/questions/927 ... iler-error

Вернуться в «JAVA»