Слайд 2Содержание
Введение
Иерархия
Причины возникновения ошибок
Обработка исключительных ситуаций
Проверяемые и непроверяемые исключения
Создание пользовательских классов исключений
Переопределение методов
и исключения
Слайд 4Причины возникновения ошибок
Попытка выполнить некорректное выражение.
Выполнение оператора throw Этот оператор
применяется для явного порождения ошибки.
Асинхронные ошибки во время исполнения программы (например, OutOfMemoryException)
Слайд 5Обработка исключительных ситуаций
Конструкция try-catch-finally:
try {
...
} catch(SomeExceptionClass e) {
...
} catch(AnotherExceptionClass e)
{
...
} finally {
…
}
Слайд 6Обработка исключительных ситуаций
Конструкция try-catch-finally:
try {
byte [] buffer = new byte[128];
FileInputStream
fis =
new FileInputStream("file.txt");
while(fis.read(buffer) > 0) {
... обработка данных ...
}
} catch(IOException es) {
... обработка исключения ...
} finally {
fis.flush();
fis.close();
}
Слайд 7Использование оператора throw
public int calculate(int theValue) throws Exception {
if( theValue <
0) {
throw new Exception("Параметр для вычисления не должен быть отрицательным");
}
}
Слайд 8Использование оператора throw
try {
...
} catch(IOException ex) {
// Обработка исключительной ситуации
// Повторное возбуждение исключительной
// ситуации
throw ex;
}
Слайд 9Использование оператора throw
try {
...
throw new IOException();
...
} catch(Exception e) {
...
}
Слайд 10
Проверяемые и непроверяемые исключения
NullPointerException, ArrayIndexOutOfBoundsException
…
ClassNotFoundException
CloneNotSupportedException
…
Слайд 12Последовательность обработки исключений
Слайд 13Пользовательские классы исключений
public class UserException extends Exception {
public UserException() {
super();
}
public UserException(String description) {
super(description);
}
}
Использование:
throw new UserException("Дополнительное описание");
Слайд 14Переопределение методов и исключения
При переопределении методов следует помнить, что если
переопределяемый метод
объявляет список возможных
исключений, то переопределяющий метод не может расширять этот
список, но может его сужать.