Типы исключений в PL/SQL
17. Декабрь, 2015 в 19:04,
Нет комментариев
Исключения PL/SQL
Исключение - это переменная в PL/SQL, возбуждаемая во время выполнения блока. В случае возбуждения исключения (исключительной ситуации), блок всегда прекращает работу, но можно задать обработчик исключения для выполнения заключительных действий.
Имеется два вида возбуждения исключений:
- Имеет место ошибка ORACLE, и соответствующее исключение возбуждается автоматически (например, если команда SELECT не возвращает ни одной строки, в блоке возникает ошибка ORA-01403 и возбуждается исключение NO_DATA_FOUND);
- Исключение возбуждается явно с помощью команды RAISE в блоке (это может быть предопределенное или пользовательское исключение).
Типы исключений
Имеется 3 типа исключений:
Исключение | Описание | Указания по обработке |
---|---|---|
Предопределенное исключение, возбуждаемое сервером | Одна из примерно 20 типичных ошибок, возникающих при выполнении PL/SQL | Описания не требуется. Явного возбуждения не требуется |
Непредопределенное исключение, возбуждаемое сервером | Любая стандартная ошибка сервера (не входящая в число предопределенных) | Исключение должно быть объявлено в декларативной секции. Явного возбуждения не требуется. |
Пользовательское исключение | Условие, которое разработчик считает ошибочным | Исключение должно быть объявлено в декларативной секции. Требует явного возбуждения. |
Таблица некоторых предопределенных исключений.
Имя исключения Ошибка Описание NO_DATA_FOUND ORA-01403 Однострочная команда SELECT не возвращает ни одной строки TOO_MANY_ROWS ORA-01422 Однострочная команда SELECT возвращает более одной строки INVALID_NUMBER ORA-01722 Неудачная попытка преобразования строки в число NOT_LOGGED_ON ORA-01012 Программа PL/SQL обращается к БД, не подключившись к Oracle. ZERO_DIVIDE ORA-01476 Попытка деления на нуль. ... ... ...