Слайд 2Содержание
Введение
Иерархия
Причины возникновения ошибок
Обработка исключительных ситуаций
Проверяемые и непроверяемые исключения
Создание пользовательских классов исключений
Переопределение методов
![Содержание Введение Иерархия Причины возникновения ошибок Обработка исключительных ситуаций Проверяемые и непроверяемые](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382069/slide-1.jpg)
и исключения
Слайд 4Причины возникновения ошибок
Попытка выполнить некорректное выражение.
Выполнение оператора throw Этот оператор
![Причины возникновения ошибок Попытка выполнить некорректное выражение. Выполнение оператора throw Этот оператор](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382069/slide-3.jpg)
применяется для явного порождения ошибки.
Асинхронные ошибки во время исполнения программы (например, OutOfMemoryException)
Слайд 5Обработка исключительных ситуаций
Конструкция try-catch-finally:
try {
...
} catch(SomeExceptionClass e) {
...
} catch(AnotherExceptionClass e)
![Обработка исключительных ситуаций Конструкция try-catch-finally: try { ... } catch(SomeExceptionClass e) {](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382069/slide-4.jpg)
{
...
} finally {
…
}
Слайд 6Обработка исключительных ситуаций
Конструкция try-catch-finally:
try {
byte [] buffer = new byte[128];
FileInputStream
![Обработка исключительных ситуаций Конструкция try-catch-finally: try { byte [] buffer = new](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382069/slide-5.jpg)
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 <
![Использование оператора throw public int calculate(int theValue) throws Exception { if( theValue](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382069/slide-6.jpg)
0) {
throw new Exception("Параметр для вычисления не должен быть отрицательным");
}
}
Слайд 8Использование оператора throw
try {
...
} catch(IOException ex) {
// Обработка исключительной ситуации
![Использование оператора throw try { ... } catch(IOException ex) { // Обработка](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382069/slide-7.jpg)
// Повторное возбуждение исключительной
// ситуации
throw ex;
}
Слайд 9Использование оператора throw
try {
...
throw new IOException();
...
} catch(Exception e) {
![Использование оператора throw try { ... throw new IOException(); ... } catch(Exception e) { ... }](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382069/slide-8.jpg)
...
}
Слайд 10
Проверяемые и непроверяемые исключения
NullPointerException, ArrayIndexOutOfBoundsException
…
ClassNotFoundException
CloneNotSupportedException
…
![Проверяемые и непроверяемые исключения NullPointerException, ArrayIndexOutOfBoundsException … ClassNotFoundException CloneNotSupportedException …](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382069/slide-9.jpg)
Слайд 12Последовательность обработки исключений
![Последовательность обработки исключений](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382069/slide-11.jpg)
Слайд 13Пользовательские классы исключений
public class UserException extends Exception {
public UserException() {
super();
![Пользовательские классы исключений public class UserException extends Exception { public UserException() {](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382069/slide-12.jpg)
}
public UserException(String description) {
super(description);
}
}
Использование:
throw new UserException("Дополнительное описание");
Слайд 14Переопределение методов и исключения
При переопределении методов следует помнить, что если
переопределяемый метод
![Переопределение методов и исключения При переопределении методов следует помнить, что если переопределяемый](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/382069/slide-13.jpg)
объявляет список возможных
исключений, то переопределяющий метод не может расширять этот
список, но может его сужать.