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
   52   53   54   55   56   57   58   59   60   61   62