Page 51 - 4657
P. 51

static void subroutine() {
            int d = 0;
            int a = 10 / d;
            }
            public static void main(String args[]) {
            Exc1.subroutine();
            } }
                 Висновок цієї програми показує, як оброблювач виключень
            системи Java виводить вміст усього стека викликів.
            С:\> java Exc1
            java.lang.ArithmeticException: / by zero
            at Exc1.subroutine(Exc1.java:4)
            at Exc1.main(Exc1.java:7)

                  try і catch

                 Для  завдання  блоку  програмного  коду,  що  потрібно
            захистити від  виключень,  використовується  ключове слово try.
            Відразу  ж  після  try-блоку  міститься  блок  catch,  що  задає  тип
            виключення, яке ви хочете обробляти.
            class Exc2 {
            public static void main(String args[]) {
            try {
            int d = 0;
            int a = 42 / d;
            }
            catch (ArithmeticException e) {
            System.out.println("division by zero");
            }
            } }
                 Метою  більшості  добре  сконструйованих  catch-розділів
            повинна  бути  обробка  виниклої  виняткової  ситуації  і
            приведення змінні програми в деякий розумний стан - таке, щоб
            програму можна було продовжити так, начебто ніякої помилки і
            не було (у нашому прикладі виводиться попередження – division
            by zero).


                                                                             49
   46   47   48   49   50   51   52   53   54   55   56