Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции Java / 04. Исключительные ситуации и их обработка. Наследование и его особенности.pptx

.pdf
Скачиваний:
137
Добавлен:
16.03.2015
Размер:
217.8 Кб
Скачать

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

Лекция 4.1

Исключительные ситуации и их обработка

© Составление, Гаврилов А.В., 2013

Самара

2013

План лекции

nВозникновение ошибок и подходы к их обработке

nМеханизм обработки исключений

nКлассификация исключений

nОбъявляемые исключения и их особенности

nОтлов исключений

nВыбрасывание исключений

nСоздание типов исключений

nОтладка приложений

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

2

Э… Проблемы

nВ процессе выполнения программные приложения встречаются с ситуациями, приводящими к возникновению ошибок

Ошибки бывают различной степени тяжести

Ошибки необходимо каким-либо способом учитывать и обрабатывать

n Ошибки возникают в случае:

некорректного ввода данных

сбоев оборудования

нарушения ограничений среды

выполнения программного кода

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

3

Обработка ошибок

nОбеспечение стабильности и надежности работы программы

nДружественное поведение конечного

программного продукта Противоречие!

n Безопасность в процессе

n

кода

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

4

Подходы к обработке ошибок

nВозвращение методом кода ошибки

Возвращается только код ошибки

int errNum = firstMethod(); if (errNum == -1) {

// обработка 1-ой ошибки

}

else if(errNum == -2) { // обработка 2-ой ошибки

}

Используются «свободные» значения возвращаемого типа

if ((ans = sqrt(val)) < 0) { // Обработка ошибки

}

else {

// Продолжение вычислений

}

nВстроенный в язык механизм проверки и обработки

try { someBusinessLogic();

...

anotherBusinessLogic()

}

catch(Exception1 e1) {

// обработка 1-ой ошибки

}

...

catch(ExceptionN eN) {

// обработка N-ой ошибки

}

finally {

//выполнение завершающих

//работу действий

}

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

5

Механизм обработки

nСоздается и «выбрасывается» объект исключения, содержащий информацию об ошибке

nВыполнение текущего потока вычислений приостанавливается

nЗавершается выполнение блоков и методов в цепочке вызовов, пока не будет найден код, отлавливающий исключение

nВыполнение потока вычислений возобновляется, причем выполняется код обработчика исключения

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

6

Поиск обработчика исключения

Стэк вызова методов

main(String[] args)

obj1.method1()

Class1.staticMethod()

obj2.method145()

obj67.method35()

Exception

найден

поиск

обработчика

JVM

не найден

Class1.staticMethod()

поиск обработчика

 

obj48.method565()

 

Exception

 

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

7

Классификация исключений

Объявляемые

Необъявляемые

n Носят предсказуемый

n Обусловлены логикой

характер

кода

n Указываются в

n Не указываются в

объявлении метода

объявлении метода

n Наследуют от класса

n Наследуют от классов

Exception

RuntimeException,

 

Error

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

8

Классификация исключений

Синхронные

nНепосредственный итог выполнения определенной инструкции

nМогут быть объявляемыми и необъявляемыми

Асинхронные

nНе зависят от выполняемой инструкции

nВнутренние ошибки

JVM

nРезультат работы deprecated методов

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

9

Базовые классы исключений

Throwable

Error

Exception

...

RuntimeException

...

...

Самарский государственный аэрокосмический университет имени академика С.П. Королёва

10