Встроенные исключения Java
Внутри стандартного пакета java.lang определено несколько классов исключений. Некоторые из них использовались в предшествующих примерах. Наиболее общие из этих исключений являются подклассами стандартного типа RuntimeException. Как уже объяснялось ранее, эти исключения не нужно включать в список throws метода — они называются непроверяемыми исключениями, поскольку компилятор не проверяет факт обработки или возбуждения методом таких исключений. Непроверяемые исключения, определенные в java. lang, описаны в табл. 10.1. В табл. 10.2 перечислены те из исключений, определенных в java.lang, которые должны быть включены в списки throws методов, которые могут их генерировать и не обрабатывают самостоятельно. Они называются проверяемыми исключениями. В Java также определено несколько других типов исключений, имеющих отношение к библиотекам классов.
Таблица 10.1. Непроверяемые подклассы RunTimeException, определенные в java.lang
Исключение | Описание |
ArithmeticException | Арифметическая ошибка, такая как деление на ноль. |
ArraylndexOutOfBoundsException | Выход индекса за границу массива. |
ArrayStoreException | Присваивание элементу массива объекта несовместимого типа. |
ClassCastException | Неверное приведение. |
EnumConstantNotPresentException | Попытка использования неопределенного значения перечисления. |
IllegalArgumentException | Неверный аргумент использован при вызове метода. |
IllegalMonitorStateException | Неверная операция мониторинга, такая как ожидание незаблокированного потока. |
IllegalStateException | Окружение или приложение в некорректном состоянии. |
IllegalThreadStateException | Запрошенная операция несовместима с текущим состоянием потока. |
IndexOutOfBoundsException | Некоторый тип индекса вышел за допустимые пределы. |
NegativeArraySizeException | Создан массив отрицательного размера. |
NullPointerException | Неверное использование нулевой ссылки. |
NumberFormatException | Неверное преобразование строки в числовой формат. |
SecurityException | Попытка нарушения безопасности. |
StringlndexOutOfBounds | Попытка использования индекса за пределами строки. |
TypeNotPresentException | Тип не найден (добавлено в J2SE 5). |
UnsupportedOperationException | Обнаружена неподдерживаемая операция. |
Таблица 10.2. Проверяемые исключения, определенные в java.lang
Исключение | Описание |
ClassNotFoundException | Класс не найден. |
CloneNotSupportedException | Попытка клонировать объект, который не реализует интерфейс Cloneable. |
IllegalAccessException | Доступ к классу не разрешен. |
InstantiationException | Попытка создать объект абстрактного класса или интерфейса. |
InterruptedException | Один поток прерван другим потоком. |
NoSuchFieldException | Запрошенное поле не существует. |
NoSuchMethodException | Запрошенный метод не существует. |