Внутри стандартного пакета 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 | Запрошенный метод не существует. |