DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Исключительные ситуации, порождаемые в разделе исключительных ситуаций

Исключительные ситуации могут порождаться и в обработчиках исключи­тельных ситуаций либо явно, посредством оператора RAISE, либо неявно при ошибке выполнения программы. В любом случае исключительная си­туация немедленно передается охватывающему блоку, так же как и в случае раздела объявлений блока. Это происходит потому, что в разделе исключи­тельных ситуаций в каждый конкретный момент времени активной может
быть лишь одна исключительная ситуация. Пока она обрабатывается, мо­жет возникнуть другая, однако наличие одновременно нескольких исклю­чительных ситуаций недопустимо. Рассмотрим примеры 6, 7 и 8.
Пример6
В этом примере исключительная ситуация А устанавливается, а затем об­рабатывается. Однако в обработчике исключительной ситуации А гене­рируется еще одна исключительная ситуация — В. Она немедленно передается внешнему блоку, минуя свой обработчик. Как и в примере 5,
если бы этот блок был заключен во внешний блок, то внешний блок пере­хватил бы исключительную ситуацию В (см. пример 7).
Пример7
Как и в примере 6, в обработчике исключительной ситуации А устанавли­вается исключительная ситуация В. Она немедленно передается охваты­вающему блоку, минуя внутренний обработчик В. Внешний блок
обрабатывает исключительную ситуацию В и успешно завершается.
Пример 8
Как показано в примерах 6 и 7, для установления исключительной ситуа­ции в обработчике можно использовать оператор RAISE без аргументов, что приводит к передаче текущей исключительной ситуации в охватыва­ющий блок. Этот метод удобен для регистрации ошибки. Он также при­меняется для того, чтобы отменить изменения, вносимые ошибкой, и
сообщить о ней охватывающему блоку.
В этом примере после оператора INSERT идет COMMIT. Это гарантирует, что работа INSERT будет зафиксирована в базе данных в случае отката        (см. главу 4).
Рекомендации по использованию исключительных ситуаций
В этом разделе предлагаются рекомендации и советы по использованию исключительных ситуаций в программах. Вы узнаете об области действия исключительных ситуаций, о том, как не допускать необработанных иск­лючительных ситуаций, и как определить оператор, вызвавший конкрет­ную исключительную ситуацию.

 









jAntivirus