
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Исключения в Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Пример: вычислениеЦ нтр дистанционного обучения
- •треугольнП имер: вычисление
- •Центр дистанционного обучения
- •Пример: вычислениеЦентр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Выражение
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Пример
- •исключенПример распространЦееннтр
- •Центр дистанционного обучения
- •Пример
- •Центр дистанционного обучения
- •Иерархия классов Центр дистанционного обучения
- •Иерархия классов
- •Проверяемые или
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Непроверяемые или
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Непроверяемые или Центр дистанционного обучения
- •Непроверяемые или
- •Непроверяемые неконтролируемыеили
- •Непроверяемые или
- •Непроверяемые или
- •Непроверяемые или
- •Непроверяемые неконтролируемыеили
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Пример использования
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Стандартны
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения
- •Центр дистанционного обучения

Центр дистанционного обучения
Обработка исключений
• в Java
Java имеет заранее определенный набор исключений и ошибок, которые могут возникнуть во время выполнения
•Программа может иметь дело с исключением в одном из трех способов:
•Игнорировать их
•Обработка, там где исключение произошла
•Обработка в другом месте
•Способ, в котором обрабатывается исключение является
важным фактором проектирования программ
10-11 online.mirea.ru

Центр дистанционного обучения
Обработка исключений в Java
static int divide(int a, int b) { return a / b;
}
public static void main(String[] args) {
try {
int c = divide(5, 0); System.out.println(“Результат: ” + c);
} catch (ArithmeticException ex)
{ System.out.println("Делить на ноль нельзя!");
} }
online.mirea.ru

Центр дистанционного обучения
Обработка
•исключенийЕсли исключение игнорируется программой, то программа будет завершена аварийно и производится вывод соответствующего сообщения
• Сообщение включает в себя трассировку стека вызовов:
•указывает на строку кода, где произошло исключение
•показывает след вызова метода, который привел к попытке выполнения ошибочной строчки кода
10-13 online.mirea.ru

Центр дистанционного обучения
Обработка
Общиеисключенийметоды для всех классов исключений (унаследованы из Throwable):
try { ...
} catch (ArithmeticException ex) {
String message = ex.getMessage(); // Сообщение об ошибке
// Печать стека вызовов на момент ошибки: ex.printStackTrace();
}
online.mirea.ru

Центр дистанционного обучения
Обработка
исключений
Пример stack trace:
java.lang.ArithmeticException: / by zero at Test.divide(Test.java:4)
at Test.main(Test.java:9)
online.mirea.ru

Центр дистанционного обучения
Служебные
•tryслова- данное ключевое слово используется для отметки начала блока кода, который потенциально может привести к ошибке.
•catch - ключевое слово для отметки начала блока кода, предназначенного для перехвата и обработки исключений.
•finally - ключевое слово для отметки начала блока кода, которое является дополнительным. Этот блок помещается после последнего блока 'catch'. Управление обычно передаётся в блок 'finally' в любом случае.
•throw - служит для генерации исключений.
•throws - ключевое слово, которое прописывается в сигнатуре метода, и обозначающее что метод потенциально может
выбросить исключение с указанным типом.
online.mirea.ru

Центр дистанционного обучения
Генерация
исключений:
public static void divide(int x, int y) {
if (y == 0)
throw new IllegalArgumentException(“Делитель равен 0”); return x / y; }
Создается объект класса, являющегося подклассом Throwable Ключевое слово throw
online.mirea.ru

Центр дистанционного обучения
Исключе
ния
Обычно классы исключений предоставляют следующие конструкторы:
IllegalArgumentException()
IllegalArgumentException(String message) IllegalArgumentException(String message, Throwable cause) IllegalArgumentException(Throwable cause)
Параметр message – это то, что возвращает метод getMessage(). Параметр message желательно всегда задавать.
online.mirea.ru

Центр дистанционного обучения
Исключе
ния
•ArithmeticException, IllegalArgumentException, NumberFormatException – все это подклассы RuntimeException: так называемые unchecked exceptions (непроверяемые исключения).
•Эти исключения можно ловить и генерировать в любом месте программы, компилятором это
никак не контролируется.
online.mirea.ru

Пример: вычислениеЦ нтр дистанционного обучения
площади треугольника
public static void main(String[] args)
{ System.out.println(getAreaValue(-1, 100));
}
public static int getAreaValue(int x, int y){
if(x < 0 || y < 0) throw new IllegalArgumentE xception("value of 'x' or 'y' is negative: x="+x+",
y
="+y);
return x*y;
В методе getAreaValue() мы бросаем исключение
IllegalArgumentException с помощью ключевого слова throw.
В данном случае, в сигнатуре метода отсутствует служебное слово throws IllegalArgumentException, это не сделано потому что исключение IllegalArgumentException является не проверяемым
online.mirea.ru