Page 54 - 4657
P. 54

throw

           Оператор     throw    використовується      для    порушення
       виключення «вручну». Для того, щоб зробити це, потрібно мати
       об'єкт підкласу класа Throwable, якому можна або одержати як
       параметр оператора catch, або створити за допомогою оператора
       new.        Нижче приведена загальна форма оператора throw.
       throw Об’єктТипуThrowable;
           При досягненні цього оператора нормальне виконання коду
       зразу  припиняється,  так  що  наступний  за  ним  оператор  не
       виконується.  Найближчий  навколишній  блок  try  перевіряється
       на  наявність  відповіді  збудженому  виключенню  оброблювача
       catch.  Якщо  такий  відшукається,  керування  передається  йому.
       Якщо ні, перевіряється наступний із вкладених операторів try, і
       так доти поки або не буде найдений придатний розділ catch, або
       оброблювач  виключень  системи  Java  не  зупинить  програму,
       вивівши  при  цьому  стан  стека  викликів.  Нижче  приведений
       приклад,  у  якому  спочатку  створюється  об'єкт-виключення,
       потім оператор throw збуджує виняткову ситуацію, після чого те
       ж  виключення  збуджується  повторно  -  цього  разу  вже  кодом
       перехопивши його в перший раз роздягнула catch.
           class ThrowDemo {
           static void demoproc() {
           try {
           throw new NullPointerException("demo");
           }
           catch (NullPointerException e) {
           System.out.println("caught inside demoproc");
           throw e;
           } }
           public static void main(String args[]) {
           try {
           demoproc();
           }
           catch(NulPointerException e) {
           System.out.println("recaught: " + e);

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