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

Класс ClassCastException

Класс ClassCastException наследуется от RuntimeException и выбрасывается, когда код пытается привести объект к типу, которому он не принадлежит. В первом параметре конструктора можно передать сообщение об ошибке, во втором - причину исключения (другой объект Throwable). Это необрабатываемое исключение, поэтому компилятор не требует его перехвата.

Синтаксис

throw new ClassCastException(); throw new ClassCastException("Message"); throw new ClassCastException("Message", cause);

Пример

Давайте попробуем привести объект типа Object, содержащий строку, к типу Integer:

public class Main { public static void main(String[] args) { Object obj = "12345"; Integer num = (Integer) obj; System.out.println(num); } }

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

Exception in thread "main" java.lang.ClassCastException: class java.lang.String cannot be cast to class java.lang.Integer

Пример

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

public class Main { public static void main(String[] args) { Object obj = "abcde"; try { Integer num = (Integer) obj; System.out.println(num); } catch (ClassCastException e) { System.out.println("Caught: " + e.getMessage()); } } }

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

"Caught: class java.lang.String cannot be cast to class java.lang.Integer (java.lang.String and java.lang.Integer are in module java.base of loader 'bootstrap')"

Пример

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

public class Main { public static void main(String[] args) { try { throw new ClassCastException("Custom cast error"); } catch (ClassCastException e) { System.out.println("Caught: " + e.getMessage()); } } }

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

"Caught: Custom cast error"

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

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