Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
Таким образом повышается надежность Программы, ее устойчивость при возможных сбоях.
Исключения, порожденные от RuntimeException, являются непроверяемыми и компилятор не требует обязательной их обработки.
Как правило, это ошибки программы, которые при правильном кодировании возникать не должны (например, IndexOfBoundException -выход за границы массива, java.lang.ArifmeticException - деление на ноль). Поэтому, чтобы не загромождать программу, компилятор оставляет ■а усмотрение программиста обработку таких исключений с помощью |йоков try-catch.
■ Исключения, порожденные от Error, также не являются проверяемыми. Они предназначены для того, чтобы уведомить приложение о возникновении фатальной ситуации, которую программным способом устранить практически невозможно (хотя формально обработчик допускает-сд). Они могут свидетельствовать об ошибках программы, но, как прави-
{ |
|, это неустранимые проблемы на уровне JVM. В качестве примера мож-| привести StackOverflowError (переполнение стека), OutOfMemoryError ехватка памяти).
Если в конструкции обработки исключений используется несколько ^итераторов catch, классы исключений нужно перечислять в них последо-Щтельно, от менее общих к более общим. Рассмотрим два примера:
}
catch (Exception e) { }
catch(lOException ioe) { }
catch(UserExcetion ue) {
try {
}
catch(UserExcetion ue) { catch(IOException ioe) { }
catch(Exception е) { }
В этом случае будет выполняться последовательная обработка исключений. И в случае, если не предусмотрена обработка того типа исключения, которое возникло (например, AnotherUserException), будет выполнен блок catch(Exception е){...}
Если срабатывает один из блоков catch, то остальные блоки в данной конструкции try-catch выполняться не будут.
Создание пользовательских классов исключений
Как уже отмечалось, допускается создание собственных классов ис- -ключений