Иллюстрированный самоучитель по Java


           

Перенесем теперь обработку деления на


// Содержимое метода 

}

Перенесем теперь обработку деления на нуль в метод f о и добавим трассировочную печать, как это сделано в листинге 16.4. Результат — на рис. 16.3.



Листинг 16.4.


Обработка исключения в методе

class SimpleExt3{

private static void f(int n){ // throws ArithmeticException{ 

try{

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

System.out.printlnt"From f() after results output"); 

}catch(ArithmeticException ae)(

System.out.printlnf"From f() catch: " + ae) ; 

// throw ae; 

}finally{

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



}

public static void main(String[] args){ 

try{

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

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

f (n);

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

catch(ArithmeticException ae){

System.out.println("From Arithm.Exc. catch: "+ае); 

}catch(ArraylndexOutOfBoundsException arre)(

System.out.println("From Array.Exc. catch: "+arre); 

}finally{

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

}

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



}

Внимательно проследите за передачей управления и заметьте, что исключение класса ArithmeticException уже не выбрасывается в метод main ().

Оператор try {}catch о {} в методе f о можно рассматривать как вложенный в оператор обработки исключений в методе main ().

При необходимости исключение можно выбросить оператором throw ae. В листинге 16.4 этот оператор показан как комментарий. Уберите символы комментария //, перекомпилируйте программу и посмотрите, как изменится ее вывод.





Рис. 16.3.


Обработка исключения в методе


Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий