Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
56_Java.pdf
Скачиваний:
210
Добавлен:
18.02.2016
Размер:
2.39 Mб
Скачать
Обработка исключений в Java
Какие исключения необходимо обрабатывать в программе
java.awt.AWTError; java.lang.NoSuchMethodError; java.lang.VirtualMachineError
java.lang.OutOfMemoryError
java.lang.StackOverflowError
java.lang.InternalError
java.lang.UnknownError

Скачано с сайта http://ivc.clan.su

java.lang.InterraptedException

java.lang.NullPointerException (нулевая ссылка)

java.awt.AWTException

java.lang.NumberFormatException

java.io.IOException

java.lang.IndexOutOfBoundsException

java.lang.RuritirneException

java.lang.ArraylndexOutOfBoundsException

java.lang.StrmglndexOutOfBoiindsException

 

java.lang.ClassCastException

java.lang.RuntimeException

java.lang.SecurityException

java.lang.ArithmeticException (деление на 0)

Исключения времени выполнения типа RuntimeException генерируются JVM. Часто их причиной являются ошибки в логике программы.

Различия между исключениями Exception и ошибками Error

Исключения типа Exception возникают в результате выполнения команд программы (т.н.

синхронные исключения). Ошибки типа Error не зависят от того, какие команды выполняются, провоцируются кодом самой JVM (т.н. асинхронные исключения).

Серьёзные нештатные ситуации, выявленные JVM в процессе выполнения программы,

фиксируются в генерируемых объектах Error. В прикладных программах не следует обрабатывать такие ошибки. Любая из них представляет собой серьезную проблему, в результате которой JVM оказывается не способной к дальнейшей работе. На них реагирует сама JVM.

Примеры классов ошибок:

1.Если в приложении вызывается метод, выбрасывающий исключение, компилятор требует, чтобы исключение было либо обработано вызвавшим методом, либо явно указано в объявлении этого метода после ключевого слова throws в списке бросаемых из метода исключений, т.е. требуется обязательная обработка объявляемых исключений.

2.Компилятор Java не требует обязательной обработки исключений типа RuntimeException, однако рекомендуется предусматривать обработку исключений этого типа в прикладных программах, если источник их возникновения — вне программы (например, некорректно вводимая пользователем информация). Исключения, которые не обрабатываются явно,

передаются обработчику, определенному в Java no умолчанию.

Организация обработки исключений в программе

1. Используемые операторы:

throw — генерирует (возбуждает, выбрасывает) исключение.

Например:

if(i==0) throw new Exception ("Ошибка: i = 0!");

try — определяет программный блок, в котором генерируется исключение, либо при выполнении оператора throw либо при вызове метода, который генерирует исключение (либо автоматически — типа

RuntimeException, если это не связано с ошибкой программиста).

После бока try должен следовать один или несколько блоков catch, либо блок finally, либо и то, и другое вместе.

catch — определяет перехватываемое исключение и блок обработки этого исключения. В коде catch могут быть выполнены некоторые восстановительные операции, может быть выброшено новое исключение, которое передаётся для обработки на более высокий уровень.

При возникновении исключения JVM игнорирует оставшиеся операторы в блоке try и передает управление соответствующему обработчику исключения. Если весь код в try выполняется нормально, блоки catch игнорируются.

finally — блок, который будет выполняться всегда, независимо от того, генерировалось исключение в блоке try или нет.

26

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]