Книга: Основы программирования на Java

9.8. Оператор throws

9.8. Оператор throws

Если метод способен возбуждать исключения, которые он сам не обрабатывает, он должен объявить о таком поведении, чтобы вызывающие методы могли защитить себя от этих исключений. Для задания списка исключений, которые могут возбуждаться методом, используется оператор throws. Если метод в явном виде (т.е. с помощью оператора throw) возбуждает исключение соответствующего класса, тип класса исключений должен быть указан в операторе throws в объявлении этого метода. С учетом этого наш прежний синтаксис определения метода должен быть расширен следующим образом:

тип имя_метода(список аргументов) throws список исюпочений {}

Ниже приведен пример программы, в которой метод procedure пытается возбудить исключение, не обеспечивая ни программного кода для его перехвата, ни объявления этого исключения в заголовке метода. Такой программный код не будет оттранслирован.

class ThrowsDemo1 {
static void procedure()

{

       System.out.println("inside procedure");
        throw new IllegalAccessException("demo");
}
public static void main(String args[]) {
        procedure();
}
}

Для того чтобы мы смогли оттранслировать этот пример, нам придется сообщить транслятору, что procedure может возбуждать исключения типа IllegalAccessException и в методе main добавить код для обработки этого типа исключений:

class ThrowsDemo {
static void procedure() throws IllegalAccessException
{
         System.out.println(" inside procedure");
         throw new IllegalAccessException("demo");
}
public static void main(String aigs[]) {
try {
          procedure();
}
catch (IllegalAccessException e) {
          System.out.println("caught" + e);
}

}

}

Ниже приведен результат выполнения этой программы.

С:> java ThrowsDemo
inside procedure
caught javaJangIllegalAccessException: demo

Оглавление книги


Генерация: 0.289. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз