3. Исключительная ситуация
www.sharkon.kz
проблема, из-за которой нормальное
продолжение работы метода или
части программы, выполняющихся в данный
момент, становится невозможным
4. Деление на 0
www.sharkon.kz
создается объект, представляющий исключение
текущий поток исполнения останавливается
ссылка на объект, представляющий исключение,
извлекается из текущего контекста
поиск подходящего места программы для передачи
исключения
обработчик исключений пытается решить возникшую
проблему
ExceptionExample.java
9. Стандартные исключения Java
www.sharkon.kz
Throwable
Error Exception
системные ошибки неполадки при исполнении
и программы
ошибки времени компиляции
RuntimeException
возбуждаются в Java автоматически
10. Завершение с помощью finally
www.sharkon.kz
try {
// Защищенная секция: рискованные операции,
// которые могут породить исключения А, В. или С
} catch(A al) {
// Обработчик для ситуации А
} catch(B bl) {
// Обработчик для ситуации В
} catch(C cl) {
// Обработчик для ситуации С
} finally {
// Действия, производимые в любом случае
}
FinallyWorks.java
11. Использование finally с return
www.sharkon.kz
finally не зависит от того,
в какой точке защищенной
секции была выполнена
команда return
MultipleReturns.java
12. Проблема потерянных исключений
www.sharkon.kz
public class ExceptionSilencer {
public static void main(String[] args) {
try {
throw new RuntimeException();
} finally {
// Команда 'return' в блоке finally
// прерывает обработку исключения
return;
}
}
}
ExceptionSilencer.java
13. Основные правила обработки исключений
www.sharkon.kz
обработать ошибку на текущем уровне (избегайте перехватывать исключения,
если вы не знаете, как с ними поступить);
исправить проблему и снова вызвать метод, возбудивший исключение;
предпринять все необходимые действия и продолжить выполнение без
повторного вызова метода;
попытаться найти альтернативный результат вместо того, который должен был
бы произвести вызванный метод;
сделать все возможное в текущем контексте и заново возбудить это же
исключение, перенаправив его на более высокий уровень;
сделать все, что можно в текущем контексте, и возбудить новое исключение,
перенаправив его на более высокий уровень;
завершить работу программы;
упростить программу (если используемая вами схема обработки исключений
делает все только сложнее, значит, она никуда не годится);
добавить вашей библиотеке и программе безопасности (сначала это поможет в
отладке программы, а в дальнейшем окупится ее надежностью).