Ядром обработки исключений являются блоки try и catch. Эти ключевые слова
работают "в одной связке"; нельзя использовать слово try без catch или catch без
try.
Вот каков формат записи try/catch-блоков обработки исключений:
try {
// Блок кода, подлежащий проверке на наличие ошибок.
}
catch {ExcepTypel exOb) {
// Обработчик для исключения типа ExcepTypel.
}
catch (ExcepType2 exOb) {
// Обработчик для исключения типа ЕхсерТуре2.
}
Здесь ЕхсерТуре — это тип сгенерированного исключения. После "выброса" исключение перехватывается соответствующей инструкцией catch, которая его обрабатывает. Как видно из формата записи try/catch-блоков, с try-блоком может быть
связана не одна, а несколько catch-инструкций. Какая именно из них будет выполнена, определит тип исключения. Другими словами, будет выполнена та catch-инструкция, тип исключения которой совпадает с типом сгенерированного исключения (а все остальные будут проигнорированы). После перехвата исключения параметр ехОЬ примет его значение.
Задавать параметр ехОb необязательно. Если обработчику исключения не нужен
|
|
доступ к объекту исключения (как это часто бывает), в задании параметра ехОb нет
необходимости. Поэтому во многих примерах этой главы параметр ехОb не задан.
Важно понимать следующее. Если исключение не генерируется, try-блок завершается нормально, и все его catch-инструкции игнорируются. Выполнение программы продолжается с первой инструкции, которая стоит после последней инструкции
catch. Таким образом, catch-инструкция (из предложенных после try-блока) выполняется только в случае, если сгенерировано соответствующее исключение.
Пример использования try и catch показан в примере 1 выше.