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

Оператор throw

Оператор throw позволяет программисту вручную выбросить исключение в любой момент выполнения программы. В качестве параметра оператор принимает объект исключения, который должен быть наследником класса Throwable. Чаще всего выбрасывают объекты классов Exception или RuntimeException. После выполнения оператора throw текущий метод немедленно прекращает работу, а исключение передается вверх по стеку вызовов до ближайшего обработчика try-catch.

Синтаксис

throw new ExceptionType("message");

Пример

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

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) { try { checkAge(-5); } catch (IllegalArgumentException e) { System.out.println("Caught: " + e.getMessage()); } } }

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

"Caught: Age cannot be negative"

Пример

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

public class Main { public static int divide(int a, int b) { if (b == 0) { throw new ArithmeticException("Division by zero is not allowed"); } return a / b; } public static void main(String[] args) { try { int res = divide(10, 0); System.out.println(res); } catch (ArithmeticException e) { System.out.println("Error: " + e.getMessage()); } } }

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

"Error: Division by zero is not allowed"

Пример

Давайте выбросим исключение внутри блока catch, чтобы пробросить ошибку выше:

public class Main { public static void main(String[] args) { try { try { throw new RuntimeException("Inner error"); } catch (RuntimeException e) { System.out.println("Inner caught: " + e.getMessage()); throw new IllegalStateException("Outer error", e); } } catch (IllegalStateException e) { System.out.println("Outer caught: " + e.getMessage()); System.out.println("Cause: " + e.getCause().getMessage()); } } }

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

"Inner caught: Inner error" "Outer caught: Outer error" "Cause: Inner error"

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

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