Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
Для этого в сигнатуре метода применяется ключевое слово throws, после которого должны быть перечислены через запятую все исключительные ситуации, которые может вызывать данный метод. То есть приведенный выше пример должен быть приведен к следующему виду:
public int calculate(int theValue) throws Exception { if( theValue < 0) {
throw new Exceptionf'Some descriptive info");
}
}
Таким образом, создание исключительной ситуации в программе ВьШолняется с помощью оператора throw с аргументом, значение которого ^°Жет быть приведено к типу Throwable.
В некоторых случаях после обработки исключительной ситуации может возникнуть необходимость передать информацию о ней в вызывающий код.
В этом случае ошибка появляется вторично. Например:
try{
} catch(IOException ex) {
// Обработка исключительной ситуации
// Повторное возбуждение исключительной ситуации throw ex;
}
Рассмотрим еще один случай.
Предположим, что оператор throw применяется внутри конструкции try-catch.
try{
throw new IOException(); } catch(Exception e) { }
В этом случае исключение, возбужденное в блоке try, не будет передано для обработки на более высокий уровень иерархии, а обработается в пределах блока try-catch, так как здесь содержится оператор, который может это исключение перехватить. То есть произойдет неявная передача управления на соответствующий блок cacth.
Проверяемые и непроверяемые исключения
Все исключительные ситуации можно разделить на две категории проверяемые (checked) и непроверяемые (unchecked).
Все исключения, порождаемые OTThrowable, можно разбить на три группы. Они определяются тремя базовыми типами: наследникам11 Throwable - классами Error и Exception, а также наследником Excepti°n - RuntimeException.
Ошибки, порожденные от Exception (и не являющиеся наследниками puntimeException), являются проверяемыми. Т.е. во время компиляции Проверяется, предусмотрена ли обработка возможных исключительных ситуаций. Как правило, это ошибки, связанные с окружением программы (сетевым, файловым вводом-выводом и др.), которые могут возникнуть вне зависимости от того, корректно написан код или нет. Например, открытие сетевого соединения или файла может привести к возникновению ошибки Л компилятор требует от программиста предусмотреть некие действия для обработки возможных проблем