Читайте также:
|
|
try {
someBusinessLogic();
...
anotherBusinessLogic()
}
catch(Exception1 e1) {
// обработка 1-ой ошибки
}
...
catch(ExceptionN eN) {
// обработка N-ой ошибки
}
finally {
// выполнение завершающих
// работу действий
}
Механизм обработки: a)Cоздается и «выбрасывается» объект исключения, содержащий информацию об ошибке.
b)Выполнение текущего потока вычислений приостанавливается.
с)Завершается выполнение блоков и методов в цепочке вызовов вплоть до кода, отлавливающего исключение.
d)Поток вычислений возобновляется, причем выполняется код обработчика исключения.
Поиск обработчика исключения – смотреть в презентации изображение!!!!!
Классификация исключений:
Объявляемые:
a)Носят предсказуемый характер
b)Указываются в объявлении метода
c)Наследуют от класса Exception
Необъявляемые
a)Обусловлены логикой кода
b)Не указываются в объявлении метода
c)Наследуют от классов RuntimeException, Error
Синхронные
a)Непосредственный итог выполнения определенной инструкции
b)Могут быть объявляемыми и необъявляемыми
Асинхронные
a)Не зависят от выполняемой инструкции
b)Внутренние ошибки JVM
c)Результат работы deprecated методов
Базовые классы исключений:
Объявление исключений: Сведения об исключениях метода не менее важны, чем тип возвращаемого им значения. Мораль: их надо обозначать в заголовке.
class OurClass
{
public int someMethod() throws
SomeException1, SomeException2
{
/* Код который может породить
SomeException1 или SomeException2 */
}
}
Особенности объявления исключений: 1)В списке должны присутствовать те объявляемые исключения, которые не обрабатываются в теле самого метода.
2)Метод вправе выбросить исключение типа, наследного от заявленного в throws
3)Запрещено генерировать объявляемые исключения типов, не заявленных в throws
Особенности объявления исключений: 1)Объявляются все объявляемые исключения, не обработанные в теле метода.
2)Статические блоки инициализации и инициализирующие выражения не могут выбрасывать исключения.
3)Нестатические блоки инициализации могут генерировать объявляемые исключения, только если их тип указан во всех throws всех конструкторов класса.
Вызов метода со списком исключений:
Варианты действий:
1)Отловить исключения и обработать их.
2)Отловить исключения и вместо них сгенерировать исключения типов, указанных в собственном предложении throws
3)Объявить соответствующие исключения в предложении throws текущего метода и позволить им «пройти через код»
Важное замечание!
1 )Каждое исключение имеет как формальную причину возникновения, так и фактическую.
2 )Исключение должно отлавливаться и обрабатываться на том уровне (по стеку, порядку вызова методов), где его:
можно обработать;
имеет смысл обрабатывать.
3)Обработка исключений не сводится к выводу сообщений в консоль и записи в журнал (logger)!
Отлов исключений:
Дата добавления: 2015-09-11; просмотров: 85 | Поможем написать вашу работу | Нарушение авторских прав |