- •Определение понятия ошибки и исключения.
- •Общий способ обработки ошибок.
- •Обработка ошибок в языке Java.
- •Асинхронные исключения.
- •Иерархия исключений
- •Классы Exception и RuntimeException
- •Стандартные проверяемые исключения
- •Класс Error
- •Заключение.
- •Иерархия исключений
- •Классы Exception и RuntimeException
- •Стандартные проверяемые исключения
- •Класс Error
Иерархия исключений
Возможные исключения Ява-программ организованы в иерархии классов, содержащейся в классе Throwable , непосредственном подклассе Object. Классы Exсeption и Error - непосредственные подклассы класса Throwable. Класс RuntimeException - непосредственный подкласс класса Exсeption.
Классы исключений, объявленные стандартными пакетами java.lang, java.util, java.io и java.net, называются стандартными классами исключений.
Java-программы могут использовать ранее существующие классы исключений в операторах throw, или определять дополнительные классы исключений, как подклассы класса Throwable или любого из его подклассов. Чтобы воспользоваться преимуществами Java -системы проверки времени компиляции для обработчиков исключений, обычно определяют большинство классов новых исключений как классы проверяемых исключений и как подклассы класса Exсeption, которые не являются подклассами RuntimeException.
Классы Exception и RuntimeException
Класс Exception - суперкласс всех исключений, обработки которых могут требовать обычные программы.
Стандартные исключения времени выполнения
Класс RuntimeException - подкласс класса Exception. Подклассы класса RuntimeException - классы непроверяемых исключений.
Пакет java.lang определяет следующие стандартные непроверяемые исключения времени выполнения, которые, подобно всем другим классам пакета java.lang, неявно импортированы, и поэтому на них можно ссылаться с помощью их простых имен:
-
ArithmeticException: возникла исключительная арифметическая ситуация, такая как операция целочисленного деления с нулевым знаменателем.
-
ArrayStoreException: была сделана попытка сохранить в массиве компонент тип значения которого не совместим с типом компонент массива.
-
ClassCastException: была сделана попытка привести ссылку на объект несоответствующего типа.
-
IllegalArgumentException: метод передал недействительный или несоответствующий аргумент или вызывает несоответствующий объект. Подклассами этого класса являются:
-
IllegalThreadStateException: поток не был в соответствующем режиме для требуемого действия.
-
NumberFormatException: была сделана попытка конвертировать строку в числовое выражение, но строка не имела соответствующего формата.
-
IllegalMonitorStateException: поток попытался работать с другими потоками или давать сведения другим нитям, имея дело с объектами, которые она не блокировала.
-
IndexOutOfBoundsException: индекс ( массива, строки или вектора) или поддиапазон,заданный с помощью двух значений индекса или индексом и длиной, были вне диапазона.
-
NegativeArraySizeException: была сделана попытка, создать массив с отрицательной длиной .
-
NullPointerException: была сделана попытка использовать пустую ссылку в случае, где требовалась ссылка на объект.
-
SecurityException: было обнаружено нарушение безопасности.
Пакет java.util определяет следующие дополнительные стандартные непроверяемые исключения времени выполнения:
-
java.util.EmptyStackException: была сделана попытка доступа к элементу пустого стека.
-
java.util.NoSuchElementException: была сделана попытка доступа к элементу пустого вектора.