РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
706 of 1163 menu

Класс IllegalArgumentException

Класс IllegalArgumentException наследуется от класса RuntimeException и относится к непроверяемым исключениям. Он сигнализирует о том, что в метод был передан аргумент, не соответствующий ожидаемому формату или диапазону. В первом параметре конструктора мы передаем сообщение об ошибке, во втором - причину возникновения исключения.

Чаще всего это исключение выбрасывается разработчиками вручную с помощью ключевого слова throw, когда нужно сообщить о некорректном значении параметра. Также его могут выбрасывать некоторые методы стандартной библиотеки Java, например Integer.parseInt при неверной строке.

Синтаксис

throw new IllegalArgumentException(); throw new IllegalArgumentException("сообщение"); throw new IllegalArgumentException("сообщение", cause);

Пример

Давайте выбросим исключение вручную, если переданный возраст оказался отрицательным:

public class Main { public static void checkAge(int age) { if (age < 0) { throw new IllegalArgumentException("Age cannot be negative"); } System.out.println("Age: " + age); } public static void main(String[] args) { checkAge(-5); } }

Результат выполнения кода:

Exception in thread "main" java.lang.IllegalArgumentException: Age cannot be negative

Пример

Давайте перехватим исключение с помощью блока try-catch и выведем сообщение об ошибке:

public class Main { public static void main(String[] args) { try { throw new IllegalArgumentException("Invalid value"); } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); } } }

Результат выполнения кода:

"Invalid value"

Пример

Давайте передадим причину возникновения исключения во втором параметре конструктора:

public class Main { public static void main(String[] args) { try { try { int num = Integer.parseInt("abc"); } catch (NumberFormatException cause) { throw new IllegalArgumentException("Bad number", cause); } } catch (IllegalArgumentException e) { System.out.println(e.getMessage()); System.out.println(e.getCause()); } } }

Результат выполнения кода:

"Bad number" "java.lang.NumberFormatException: For input string: \"abc\""

Смотрите также

  • класс RuntimeException,
    родительский класс непроверяемых исключений
  • ключевое слово throw,
    которое выбрасывает исключение
  • конструкция try,
    которая обрабатывает исключения
  • метод getMessage,
    который возвращает сообщение об ошибке
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить