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

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

Всякий раз, когда в программе происходит исключение, в которой не обеспечен надлежащий механизм исключения, происходит аварийное прекращение работы программы, оставляющие все ресурсы, предварительно распределенные в том же самом состоянии. Это может вести к утечке ресурса. Например, память, распределенная для программы, не была бы перераспределена для других программ. Чтобы препятствовать таким случаям, требуется надлежащее исключение, использующее механизм, с помощью которого мы можем возвратить все ресурсы, предварительно распределенные системой. Например, рассмотрите операцию с файлом. Если написанный файл только для чтения, то при аварийном прекращении работы программы происходит исключение и файл не закрывается. Так можно повредить файл и данные. В результате распределённая память не может возвратиться к операционной системе.

Обработка ошибки в Java выполнена со справкой, обращающейся к модели исключения. Согласно этой модели, если в блоке происходит ошибка, 'исключение' (exception), говорят, что оно выброшено (thrown) этим блоком и может быть перехвачено с помощью оператора catch. Исключительные состояния обрабатываются по-другому в отличие от нормального потока управления в программе. Исключения должны быть перехвачены, иначе происходит выход из программы.

В Java, когда происходит исключение, то создаётся объект исключение. Это событие содержит детальную информацию об исключении. Оно передаётся методу, который отыскивает и обрабатывает информацию.

Для обработки ошибок в Java используются классы Error (ошибка) и Exception (исключение). Эти классы получены из класса Throwable, который в свою очередь получен из класса Object (объекта). Только объекты, которые являются случаями Throwable, Error, Exception или любого другого класса, полученного из них, признаны как исключения JVM.
Класс Error обрабатывает внутренние ошибки. Эти ошибки являются редкими и обычно фатальными. Мы не можем предугадать их, без уведомления пользователя и попытки корректно закончить программу. Например, если программа Java написана, чтобы читать файл с гибкого диска, и она выполняется, не вставляя диск в дисковод для гибких дискет, тогда будет произведена системная ошибка.

Рисунок 5.1 показывает иерархию Throwable, Exception и других классов.


Рисунок 5.1: Иерархия класса Throwable

Обработка исключения в Java управляется используя пять ключевых слов, try, catch, throw, throws и finally. Записи в блоке catch определяют действия, которые будут предприняты, если и когда произойдёт исключение. Вышеупомянутые ключевые слова будут обсуждены в следующих разделах.

Общая форма блока try-catch показана ниже.
try
{
// код, который, как ожидается, перехватит исключение }
catch(Exception el){
/* Если исключение, перехваченное в блоке try, имеет тип el, то здесь выполняются необходимые действия */
}


Есть два способа обработки исключения:

Код в котором может произойти ошибка - выброс исключения необходимо поместить в блок try и при выбросе исключения указать блок catch для обработки исключения.

В некоторых случаях, метод может быть объявлен таким образом, что в случае, если происходит исключение, его выполнение останавливается. Поэтому мы не должны реализовывать блок try-catch в пределах метода. Вместо этого в декларации метода включается пункт throws, с помощью которого сообщается, что если найдено исключение, то оно должно обрабатываться функцией запроса.

назад к оглавлению вперед

Rus. Open Source company, г. Саратов
ул. Орджоникидзе, 156, офис 203
тел: 8 (8452) 57-84-41
e-mail: info@rus_opensource.com

Главная | Обзоры | О разном
Карта сайта

Учебная литература:

Введение в Linux
Основы JAVA
Архивы

© 2013 opensourcerules.net