Класс IllegalStateException
Класс IllegalStateException наследуется от
RuntimeException и относится к непроверяемым
исключениям. Он выбрасывается тогда, когда метод
вызван в неподходящий момент, то есть объект
находится не в том состоянии, в котором должен
быть для корректного выполнения этого метода.
Например, если попытаться вызвать метод у объекта,
который ещё не был инициализирован или уже был
закрыт. В конструктор можно передать сообщение
с описанием причины ошибки, а также причину
(другое исключение), которая привела к текущему.
Синтаксис
new IllegalStateException()
new IllegalStateException(String message)
new IllegalStateException(String message, Throwable cause)
new IllegalStateException(Throwable cause)
Пример
Давайте создадим исключение IllegalStateException
с сообщением и выведем его текст на экран:
public class Main
{
public static void main(String[] args)
{
IllegalStateException ex = new IllegalStateException("Object is not initialized");
System.out.println(ex.getMessage());
}
}
Результат выполнения кода:
"Object is not initialized"
Пример
Давайте выбросим исключение IllegalStateException
с помощью оператора throw и перехватим его:
public class Main
{
public static void main(String[] args)
{
try
{
throw new IllegalStateException("Invalid state");
}
catch (IllegalStateException ex)
{
System.out.println(ex.getMessage());
}
}
}
Результат выполнения кода:
"Invalid state"
Пример
Давайте передадим в исключение причину его возникновения - другое исключение:
public class Main
{
public static void main(String[] args)
{
try
{
throw new IllegalStateException("Cannot process", new RuntimeException("Root cause"));
}
catch (IllegalStateException ex)
{
System.out.println(ex.getMessage());
System.out.println(ex.getCause().getMessage());
}
}
}
Результат выполнения кода:
"Cannot process"
"Root cause"
Смотрите также
-
оператор
throw,
который выбрасывает исключение -
конструкция
try,
которая содержит защищаемый код -
конструкция
catch,
которая перехватывает исключение -
класс
RuntimeException,
родитель класса IllegalStateException