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. Расскажите про обрабатываемые и необрабатываемые исключения
Все вопросы по теме: список
Все темы: список
Вопросы/замечания/предложения/нашли ошибку: напишите мне