Interbase
.pdf122 |
Глава 5 |
|
|
|
|
Ошибки, идентифицирующиеся кодами ошибок InterBase. Конструкция ANY позволяет выполнять операторы обработки при
возникновении любых ошибок перечисленных типов.
Сводка синтаксиса оператора WHEN приведена в таблице.
Таблица 5.2. Синтаксические конструкции оператора WHEN
Параметр |
Описание |
EXCEPTION exception_name |
Имя исключения (описанного в базе) |
SQLCODE number |
Код ошибки - SQLCODE |
GDSCODEerrcode |
Код ошибки InterBase |
ANY |
Обеспечивает вызов обработчика для любых |
|
перехватываемых ошибок |
<compound_statement> |
Простой оператор или блок, осуществляющий |
|
обработку ошибок |
Обработка исключений
Вместо завершения работы при возникновении исключения процедура может обработать и возможно исправить ситуацию, приведшую к исключению. При возникновении исключения выполняются следующие действия:
•Прекращается выполнение блока BEGIN ... END, содержащего исключение, и отменяются действия, выполненные в блоке.
•Если блок содержит оператор WHEN, управление передается
вWHEN, в противном случае аналогичные действия производятся
вблоке, содержащем данный. Подобные действия производятся до тех пор, пока либо не будет найден соответствующий WHEN, либо не будет достигнут уровень процедуры. В последнем случае процедура будет завершена, а исключение не будет обработано.
•Выполняются действия, определенные оператором (блоком), заданным в конструкции WHEN (если он обнаружен).
Управление возвращается оператору (блоку) программы, следующему за оператором WHEN.
Если исключение обработано с помощью WHEN, то соответствующее сообщение об ошибке не выдается.