Добавил:
Rumpelstilzchen2018@yandex.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3-й семестр / Лекции / 5 - Презентация 2

.pdf
Скачиваний:
57
Добавлен:
25.12.2020
Размер:
1.13 Mб
Скачать

Центр дистанционного обучения

Исключения

Checked exceptions (проверяемые исключения) имеют “вирусную” природу: если где-то появляется код, который может сгенерировать checked exception (т.е. метод, объявляющий throws), то все методы, вызывающие этот метод, обязаны тоже добавить объявление throws, если они не оборачивают вызов метода в try ... catch.

online.mirea.ru

Центр дистанционного обучения

Исключения

static void f1() {

System.out.println(“f1”);

}

static void f2() {

f1();

}

static void f3() {

f2();

}

online.mirea.ru

Центр дистанционного обучения

Исключения

static void f1() throws IOException {

Files.write(Paths.get(“out.txt”), new byte[] {1}); // throws!!!

}

static void f2() throws IOException {

f1();

}

static void f3() throws IOException {

f2();

}

online.mirea.ru

Центр дистанционного обучения

Исключения

static void f1() throws IOException {

Files.write(Paths.get(“out.txt”), new byte[] {1}); // throws!!!

}

static void f2() {

try { f1(); } catch (IOException ex) { ex.printStackTrace(); }

}

static void f3() {

f2();

}

online.mirea.ru

Центр дистанционного обучения

Исключения

Можно создавать собственные классы исключений:

// Проверяемое исключение:

public class MyException extends Exception {

public MyException(String message) {

super(message);

}

}

online.mirea.ru

Центр дистанционного обучения

Исключения

Объявление throws может перечислять несколько исключений:

void doSomething() throws IOException, InterruptedException {

...

}

online.mirea.ru

Центр дистанционного обучения

Исключения

Можно создавать собственные классы исключений:

// Непроверяемое исключение:

public class MyException extends RuntimeException {

public MyException(String message) {

super(message);

}

}

online.mirea.ru

Центр дистанционного обучения

Исключения

Блок finally:

try {

System.out.println(“Started”);

doSomething();

System.out.println(“Done”);

}catch (Exception ex) { System.out.println(“Exception”);

}finally {

System.out.println(“Cleaning up”); // Выполняется всегда

}

online.mirea.ru

Центр дистанционного обучения

Исключения

Блок finally: если при выполнении doSomething() не проиcходит исключений:

Started

Done

Cleaning up

online.mirea.ru

Центр дистанционного обучения

Исключения

Блок finally: если при выполнении doSomething() происходит исключений:

Started

Exception

Cleaning up

online.mirea.ru