Delphi | Сети | ПК | Маршрутизаторы | Моделирование | Протоколы | Экспертные системы | Удаленный доступ | Доменные имена
Аплеты | SQL | Надежность | Задачи | Информационные процессы | JAVA | Отказы изделия | Расчет надежности показателей | Инфсис

Обработка исключительных ситуаций в Java

Как правило, в производных от Applet классах, кроме метода paint, переопределяется также метод init. Этот метод служит для инициализации апплета и является "точкой входа" в программу - именно этот метод вызывается первым при выполнении апплета (конструкторы для апплетов обычно не используют). Кроме того, иногда переопределяют методы start и stop (например, при работе с потоками). Метод destroy вызывается при выгрузке апплета.

Оператор throw

Этот оператор очень прост: после слова throw через пробел записывается объект класса-исключения. Достаточно часто он создается прямо в операторе throw, например:

throw new ArithmeticException();

Оператор можно записать в любом месте программы. Он немедленно выбрасывает записанный в нем объект-исключение и дальше обработка этого исключения идет как обычно, будто бы здесь произошло деление на нуль или другое действие, вызвавшее исключение класса ArithmeticException.

Итак, каждый блок catch о и перехватывает один определенный тип исключений. Если требуется одинаково обработать несколько типов исключений, то можно воспользоваться тем, что классы-исключения образуют иерархию. Изменим еще раз листинг 16.2, получив листинг 16.5.

Листинг 16.5. Обработка нескольких типов исключений

class SimpleExt4(

public static void main(String[] args){

try{

int n = Integer.parselnt(args[0]);

System.out.println("After parselnt());

System.out.println(" 10 / n = " + (10 / n) ) ;

System.out.println("After results output"); 

}catch(RuntimeException ae){

System.out.println("From Run.Exc. catch: "+ae); 

}finally{

System.out.println("From finally"); 

}

System.out.println("After all actions"); 

}

В листинге 16.5 два блока catch() {} заменены одним блоком, перехватывающим исключение класса RuntimeException. Как видно на рис. 16.4, этот блок перехватывает оба исключения. Почему? Потому что это исключения подклассов класса RuntimeException.

Рис. 16.4. Перехват нескольких типов исключений

Таким образом, перемещаясь по иерархии классов-исключений, мы можем обрабатывать сразу более или менее крупные совокупности исключений. Рассмотрим подробнее иерархию классов-исключений.

Математический анализ, лекции по физике Компьютерные сети