Page 57 - 4657
P. 57
порушені і перехоплені. Для створення такої ділянки коду
використовується ключове слово finally. Навіть у тих випадках,
коли в методі немає відповідного збуджуючого виключення,
роздягнутий catch, блок finally буде виконаний до того, як
керування перейде до операторів, що випливають за розділом
try. У кожного розділу try повинні бути принаймні один раз
catch чи блок finally. Блок finally дуже зручний для закриття
файлів і звільнення будь-яких інших ресурсів, захоплених для
тимчасового використання на початку виконання методу. Нижче
приведений приклад класу з двома методами, завершення яких
відбувається по різних причинах, але в обох перед виходом
виконується код розділу finally.
class FinallyDemo {
static void procA() {
try {
System.out.println("inside procA");
throw new RuntimeException("demo");
}
finally {
System.out.println("procA's finally");
} }
static void procB() {
try {
System.out.println("inside procB");
return;
}
finally {
System.out.println("procB's finally");
} }
public static void main(String args[]) {
try {
procA();
}
catch (Exception e) {}
procB();
} }
У цьому прикладі в методі proc через порушення
виключення провиходить передчасний вихід із блоку try, але по
55