Page 55 - 4657
P. 55

}
                 } }
                 У  цьому  прикладі  обробка  виключення  проводиться  в  два
            прийоми.  Метод  main  створює  контекст  для  виключення  і
            викликає demoproc. Метод demoproc також установлює контекст
            для  обробки  виключення,  створює  новий  об'єкт  класу
            NullPointerException і за допомогою оператора throw збуджує це
            виключення.  Виключення  перехоплюється  в  наступному  рядку
            усередині  методу  demoproc,  причому  об'єкт-виключення
            доступного  коду  оброблювача  через  параметр  e.  Код
            оброблювача  виводить  повідомлення  про  те,  що  порушене
            виключення,  а  потім  знову  збуджує  його  за  допомогою
            оператора  throw,  у  результаті  чого  воно  передається
            оброблювачу  виключень  у  методі  main.  Нижче  приведений
            результат, полученний при запуску цього прикладу.
            С:\> java ThrowDemo
            caught inside demoproc
            recaught: java.lang.NullPointerException: demo
            throws
                 Якщо метод здатний збуджувати виключення, що він сам не
            обробляє,  він  повинний  оголосити  про  таке  поводження,  щоб
            зухвалі  методи  могли  захистити  себе  від  цих  виключень.  Для
            завдання списку виключень, що можуть збуджуватися методом,
            використовується ключове слово throws. Якщо метод у явному
            виді  (тобто  за  допомогою  оператора  throw)  збуджує
            виключеннявідповідного класу, тип класу виключень повинний
            бути вказаний в операторі throws в оголошенні цього методу. З
            обліком  цього  наш  колишній  синтаксис  визначення  методу
            повинний бути розширений наступним чином:
            тип ім'я_методу(список аргументів) throws
            список_виключень {}
                 Нижче  приведений  приклад  програми,  у  якій  метод
            procedure намагається збудити виключення, не забезпечуючи ні
            програмного коду для його перехоплення, ні оголошення цього



                                                                             53
   50   51   52   53   54   55   56   57   58   59   60