Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

IllegalStateException

Сообщает, что метод вызван в неподходящий момент — объект не в том состоянии.

Доступно с: Java 1.1

Синтаксис

public class IllegalStateException extends RuntimeException

Примеры

Нельзя отправить уже отправленный заказ:

class Order {
    private boolean shipped;
 
    void ship() {
        if (shipped) throw new IllegalStateException("Order already shipped");
        shipped = true;
        IO.println("Shipped");
    }
}
 
void main() {
    var order = new Order();
    order.ship();
    try {
        order.ship();
    } catch (IllegalStateException e) {
        IO.println(e.getMessage());
    }
}

Результат:

Shipped
Order already shipped

Примечания

Разница с IllegalArgumentException: там виноват аргумент, здесь — текущее состояние объекта (поток уже закрыт, заказ уже оплачен). JDK бросает его, например, при повторном использовании Stream и при повторе ключа в Collectors.toMap().

См. также

  • IllegalArgumentException — Сообщает, что метод получил недопустимый аргумент.
  • UnsupportedOperationException — Возникает при вызове операции, которую объект не поддерживает, — например, изменение неизменяемой коллекции.
  • RuntimeException — Базовый класс непроверяемых исключений — ошибок в логике программы.

В учебнике

  • Свои исключения — Как создать собственный класс исключения в Java — наследование от Exception и RuntimeException, сообщение, причина и дополнительные поля.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.