Microsoft Word кл программирование на Java 2020 Зорина docx


Механизм исключительных ситуаций



Pdf көрінісі
бет44/65
Дата17.10.2023
өлшемі3,23 Mb.
#117230
түріРеферат
1   ...   40   41   42   43   44   45   46   47   ...   65
 
Механизм исключительных ситуаций 
Механизм исключительных ситуаций в Java поддерживается пятью ключевыми 
словами: 
• 
try 
• 
catch 
• 
finally 
• 
throw 
• 
throws 
В Java всего около 50 ключевых слов, и пять из них связано с исключениями: 
try, catch, finally, throw, throws. Из них catch, throw и throws применяются к 
экземплярам класса, причём работают они только с Throwable и его наследниками. 
На рисунке 1 представлена иерархия классов исключений, используемая в Java. 


89 
Рисунок 1 иерархия классов исключений 
Наиболее популярные исключений в Java представлены в таблице 1.
Таблица 1. Классы иcключений в Java
№ пп 
Класс исключения
Класс предок/тип 
Требования
ArithmeticException
RuntimeException
NegativeArraySizeException 
RuntimeException 
ArrayIndexOutOfBoundsException RuntimeException 
NoSuchElementException 
RuntimeException 
ArrayStoreException 
RuntimeException 
NotSerializableException 
Exception 
AssertionError 
Error 
NullPointerException 
RuntimeException 
ClassCastException 
RuntimeException 
NumberFormatException 
RuntimeException 


90 
ClassNotFoundException 
Exception 
OutOfMemoryError 
Error 
CloneNotSupportedException 
Exception 
SecurityException
RuntimeException 
ConcurrentModificationException 
RuntimeException 
StackOverflowError 
Error 
EOFException 
Exception 
StringIndexOutOfBoundsException RuntimeException 
FileNotFoundException 
Exception 
ThreadDeath 
Error 
IllegalArgumentException 
RuntimeException 
UnsupportedEncodingException 
Exception 
InterruptedException 
Exception 
UnsupportedOperationException 
RuntimeException 
То, что исключения являются объектами важно по двум причинам: 
1) 
они образуют иерархию с корнем java.lang.Throwable (java.lang.Object — 
предок java.lang.Throwable, но Object —это не исключение!) 
2) 
они могут иметь поля и методы
По первому пункту: catch — полиморфная конструкция, т.е. catch по типу 
класса родителя перехватывает исключения для экземпляров объектов как 
родительского класса, так или его наследников(т.е. экземпляры непосредственно 
самого родительского класса или любого его потомка). 
Пример: 
public class App { 
public static void main(String[] args) { 


91 
try { 
System.err.print(" 0"); 
if (true) {throw new RuntimeException();} 
System.err.print(" 1"); 
} catch (Exception e) { // catch по Exception ПЕРЕХВАТЫВАЕТ 
RuntimeException 
System.err.print(" 2"); 

System.err.println(" 3"); 
}// end main 

Результат работы программы:
>> 0 2 3 


92 


Достарыңызбен бөлісу:
1   ...   40   41   42   43   44   45   46   47   ...   65




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет