2. Опишите иерархию исключений

2. Опишите иерархию исключений

UNKNOWN

Исключения делятся на несколько классов, но все они имеют общего предка — класс Throwable, потомками которого являются классы Exception и Error.

Error ошибки виртуальной машины.

StackOverflowError — возникает, например, когда метод бесконечно вызывает сам себя OutOfMemoryError — возникает, когда недостаточно памяти для создания новых объектов. NoClassDefFoundError – не смог найти класс Error — это критическая ошибка во время исполнения программы, связанная с работой виртуальной машины Java.

В большинстве случаев Error не нужно обрабатывать, поскольку она свидетельствует о каких-то серьезных недоработках в коде.

Исключения (Exceptions) являются результатом проблем в программе, которые в принципе решаемые и предсказуемые.

Например, произошло деление на ноль в целых числах. RuntimeExceptions исключения, которые могут быть предотвращены программно (программист сам пишет проверку, т.е. не ловит нет throw).

RuntimeExceptions:

  • ArithmeticException: исключение, возникающее при делении на ноль
  • IndexOutOfBoundException: тип индекса вышел за допустимые пределы
  • IllegalArgumentException: использование неверного аргумента при вызове метода
  • NullPointerException: использование пустой ссылки
  • NumberFormatException: ошибка преобразования строки в число
  • ArrayIndexOutOfBoundsException: выход за пределы массива

В Java все исключения делятся на два типа:

  • checked (контролируемые/проверяемые исключения) должны обрабатываться блоком catch или описываться в сигнатуре метода (например, throws IOException).Наличие такого обработчика/модификатора сигнатуры проверяются на этапе компиляции;
  • unchecked (неконтролируемые/непроверяемые исключения), к которым относятся ошибки Error(например, OutOfMemoryError), обрабатывать которые не рекомендуется и исключения времени выполнения, представленные классом RuntimeException и его наследниками (например, NullPointerException), которые могут не обрабатываться блоком catch и не быть описанными в сигнатуре метода. FileNotFoundException – не нашел файл для открытия; FileSystemException
  • (AccessDeniedException(разрешение), SocketException (BindException (ошибка связи сокета), ConnectException (отказ соединения)

Предыдущий вопрос: 1. Что такое исключения?

Следующий вопрос: 3. Расскажите про обрабатываемые и необрабатываемые исключения

Все вопросы по теме: список

Все темы: список

Вопросы/замечания/предложения/нашли ошибку: напишите мне

Report Page