3-й семестр / Лекции / 5 - Презентация 2
.pdfЦентр дистанционного обучения
Исключения
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