Исключительные ситуации - это аварийные ситуации, которые могут возникнуть во время выполнения программы. В Java исключительные ситуации могут генерироваться либо исполнительной системой JAVA (некоторые фундаментальные ошибки), либо программным кодом «вручную». При возникновении исключения, оно должно быть захвачено обработчиком определенным в программе, или обработчиком по-умолчанию. В последнем случае выдается сообщение, описывающее исключение, формируется определенная дополнительная информация (трасса стека от точки где произошло исключения) и программа завершается. Если это нежелательно, то необходимо предусмотреть обработку. Обработка исключений реализуется через создание объекта, представляющего исключение, который «вбрасывается» в метод, вызвавший ошибку. Механизм обработки исключений управляется с помощью ключевых слов: try, catch, throw, throws, finally. Ключевое слово try используется для выделения блока, в который заключается контролируемая часть кода. Слово catch определяет соответствующий обработчик для возникшего исключения. Код который должен быть обязательно выполнен перед выходом из блока try помещается в блок finally. Общая структура блока обработки исключения приведена ниже:
try { // фрагмент кода программы, в котором в котором возможно
// возникновение аварийной ситуации
}
catch (имя _класса-исключения_1 имя объекта_1){
// обработка исключений для имя _класса_исключение 1
}
catch (имя класса_исключения_2 имя объекта_2){
//обработчик исключений для имя класса_исключения_2 }
[finally {
//блок кода обработки перед выходом из try
}].
Исключения могут вырабатываться как системой Java, так и программа, при помощи throw, сама может вызвать исключительную ситуацию (ручной выброс исключения). Слово throws используется для определения возможных исключений, которые метод может создать, но не обрабатывает.