Как показано на рис. 7.1, при установлении исключительной ситуации управление программой передается разделу исключительных ситуаций блока. В этот раздел входят обработчики для некоторых или всех исключительных ситуаций. В обработчике содержится программный текст, выполняющийся при возникновении соответствующей ошибки и при установлении данной исключительной ситуации. Ниже приводится синтаксис этого раздела:
EXCEPTION WHEN для_исключитпельной_ситуации1 THEN
последовательность_операторов1; WHEN для_исключитпельной_ситуации2 THEN последовательность_операторов2; [ WHEN OTHERS THEN
последовательность_операторов3] END;
Каждый обработчик состоит из условия WHEN (когда) и операторов, выполняющихся при установлении исключительной ситуации. В WHEN указывается, для какой исключительной ситуации предназначен данный обработчик. Продолжим рассмотренный выше пример:
Один обработчик может обслуживать несколько исключительных ситуаций, для чего нужно перечислить их имена в условии WHEN, отделив одно от другого ключевым словом OR (или):
Внимание
В отличие от Java, раздел исключений блока может иметь обработчики для исключений, которые не инициируются разделом выполнения, а также он может не обрабатывать исключения, инициируемые разделом выполнения. В настоящее время компилятор PL/SOL не проверяет раздел выполнения в этом отношении.
Данная исключительная ситуация может обрабатываться максимум только одним обработчиком в разделе обработки исключений. Если для исключительной ситуации имеется более одного обработчика, компилятор PL/SQL будет инициировать ошибку PLS483, как показывает следующий сеанс
< Предыдущая | Следующая > |
---|