Типы исключений Java

Тема исключений затрагивает большой материал, и по этому я разделить ее на две части, в первой мы говорили об исключении и его синтаксисе об этом вы можете почитать здесь. А вот сейчас мы поговорим во второй части нашей статьи, о типах исключений.   Исключение и его подклассы используются для исключительных условий, что бы пользовательские программы могли их поймать и обработать, что бы предотвратить сбой работы программы. Вы можете создать подкласс Exception для создания собственных пользовательских типов исключений.

Ошибка определяется исключением, которое не должно быть поймано в нормальных условиях выполнения программы. Работа системы Java  об ошибках приложения, заключается в том что бы указать на ошибки в среде исполнения. Переполнение стека является примером такой ошибки.

Неперехваченные исключения

Эта небольшая программа показывает пример java исключения. Она включает в себя выражение, которое преднамеренно вызывает ошибку деления на ноль:

Результатом работы программы будет:

Exception in thread «main» java.lang.ArithmeticException: / by zero

Рассмотрим эту же программы но, момент вычисления поместим в отдельный метод и посмотрим на работу программы.

Результатом работы программы будет:

Exception in thread «main» java.lang.ArithmeticException: / by zero
at TestPackage.Test.delenie(Test.java:8)
at TestPackage.Test.main(Test.java:13)

Здесь мы видим в результате трассировки стека из обработчика исключений, как отображается весь стек вызовов.

Встроенные исключения в Java.

Если исключения подкласса RuntimeException не может быть включена в любой из методов throws списка. Они называются незарегистрированными исключениями. Незарегистрированные исключения, определенные в java.lang, я специально для вас составил java список исключений:

исключение Описание
ArithmeticException Арифметика ошибка, например, деление на ноль.
ArrayIndexOutOfBoundsException Индекс массива выходит за пределы поля.
ArrayStoreException Присвоение элементу массива несовместимого типа.
ClassCastException
Недопустимое приведение
EnumConstantNotPresentException Сделана попытка использовать неопределенное значение перечисления.
IllegalArgumentException Нелегальная аргумент, используемый для вызова метода.
IllegalMonitorStateException Незаконная операция монитора, например, ожидание на разблокированный поток.
IllegalStateException Окружающая среда или приложение в некорректном состоянии.
IllegalThreadStateException Запрошенная операция не совместима с текущим состоянием потока.
IndexOutOfBoundsException Некоторые тип индекса выходит за пределы поля.
NegativeArraySizeException Массив создается с отрицательным размером.
Исключение нулевого указателя Неправильное использование нулевой ссылки.
NumberFormatException Неправильное преобразование строки в числовой формат.
SecurityException Попытка нарушить безопасность.
StringIndexOutOfBounds Попытка индекса за пределы строки.
TypeNotPresentException Тип не найден.
UnsupportedOperationException Неподдерживаемая операция была обнаружена.

Проверяемые исключения перечислены в следующей таблице:

Исключение Описание
ClassNotFoundException Класс не найден.
CloneNotSupportedException Попытка клонировать объект, который не реализует интерфейс Cloneable.
IllegalAccessException Доступ к классу запрещен.
InstantiationException Попытка создать объект абстрактного класса или интерфейса.
InterruptedException Один поток был прерван другим потоком.
NoSuchFieldException Запрашиваемый поле не существует.
NoSuchMethodException Запрашиваемый метод не существует.

Java класс пользовательские исключения.

Вы можете создать свой ​​собственный класс исключений , путем определения подкласса исключений.

Класс исключений не определяет никаких собственных методов. Он наследует методы , предоставляемые Throwable .

Следующая программа создает пользовательский тип исключения.

Результатом работы программы будет:

Слушаем порт(8)
Выход
Слушаем порт(26)
Ошибка MyException[26]

Java прикованные исключения.

Прикованные исключение позволяют связать одно исключение с другим исключением. Происходит процесс в котором второе исключение описывает причину первого исключения.

Ниже я привел пример, который иллюстрирует механику обработки прикованных исключения:

Результатом работы программы будет:

Вывод: java.lang.NullPointerException: Ошибка №1
Вывод: java.lang.ArithmeticException: Ошибка №2

Обновлено: 08.04.2017 — 11:35

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.