Знакомство с языком PL/SQL и его управляющими конструкциями
МЕТОДИЧЕСКИЕ УКАЗАНИЯ |
Исключительные ситуации.
Исключительная ситуация – событие, не приводящее к возникновению непоправимой ошибки, но прерывающее нормальное выполнение программы и вызывающее безусловный переход на обработку исключительной ситуации текущего блока. Некоторые исключительные ситуации (ROW_NO_FOUND) являются событиями нормальной обработки. Исключительные ситуации типа VALUE_ERROR – программная ошибка или неожиданное событие. Если не установлен обработчик исключительной ситуации управление передается блоку верхнего уровня. Исключительная ситуация поднимается вверх по вложенным блокам, пока не встретит обработчик, иначе передается управление вызывающему контексту (SQL PLUS) Если ожидаемая исключительная ситуация не включена в список или неизвестна какая исключительная ситуация может возникнуть, либо необходимо обработать все исключительные ситуации, тогда применяют выражение: WHEN OTHERS THEN… Обработчик исключительных ситуаций будет обрабатывать любую возникнувшую ошибку. Можно применить любую комбинацию имен исключительных ситуаций, указав OTHERS в качестве последней.
Предотвращение зацикливания в обработчике исключительных ситуаций Чтобы предотвратить зацикливание, сам обработчик заключают в блок и устанавливают обработчик для обработчика. Второй обработчик не должен выполнять никаких действий. EXCEPTION Всегда следует устанавливать обработчик исключительных ситуаций для самого внешнего блока PL/SQL. При этом пользователь должен получать короткое сообщение об ошибке.
Пользовательские исключительные ситуации При определении исключительной ситуации используется специальная конструкция – прагма – это директива компилятора, которая обрабатывается во время компиляции. Пример: использования директивы
Обработка исключительных ситуаций внутри программы LOOP //
|