FirebirdSQL logo

CREATE EXCEPTION

Назначение

Создание пользовательского исключения для использования в PSQL модулях.

Доступно в

DSQL, ESQL

Синтаксис
CREATE EXCEPTION exception_name '<message>'

<message> ::= <message-part> [<message-part> ...]

<message-part> ::=
    <text>
  | @<slot>

<slot> ::= one of 1..9
Table 1. Параметры оператора CREATE EXCEPTION
Параметр Описание

exception_name

Имя исключения.Максимальная длина 63 символов.

message

Сообщение об ошибке.Максимальная длина ограничена 1021 символом.

text

Текст.

slot

Номер слота для параметра.Нумерация начинается с 1.Максимальный номер слота равен 9.

Оператор CREATE EXCEPTION создаёт новое пользовательское исключение для использования в PSQL модулях.Исключение должно отсутствовать в базе данных, иначе будет выдана соответствующая ошибка.

Имя исключения является стандартным идентификатором.В диалекте 3 оно может быть заключено в двойные кавычки, что делает его чувствительным к регистру.Подробности см. Идентификаторы.

Сообщение исключения сохраняется в наборе символов NONE, т.е.любых символов из однобайтовых наборов символов.Текст сообщения может быть переопределён в PSQL коде во время возбуждения исключения.

Сообщение об ошибке может содержать слоты для параметров, которые заполняются при возбуждении исключения.

Warning
Внимание!

Если в тексте сообщения, встретится номер слота параметра больше 9, то второй и последующий символ будут восприняты как литералы.Например, @10 будет воспринято как @1, после которого следует литерал 0.

Note

Пользовательские исключения хранятся в таблице RDB$EXCEPTION.

Кто может создать исключение?

Выполнить оператор CREATE EXCEPTION могут:

Пользователь, создавший исключение, становится его владельцем.

docnext count = 11

Примеры

Example 1. Создание пользовательского исключения
CREATE EXCEPTION E_LARGE_VALUE 'Значение превышает предельно допустимое';
Example 2. Создание параметризованного исключения
CREATE EXCEPTION E_INVALID_VALUE
'Неверное значение @1 для поля @2';

ALTER EXCEPTION

Назначение

Изменение текста сообщения пользовательского исключения.

Доступно в

DSQL, ESQL

Синтаксис
ALTER EXCEPTION exception_name '<message>'

Подробнее см. в синтаксисе CREATE EXCEPTION

Оператор ALTER EXCEPTION изменяет текст сообщения пользовательского исключения.

Кто может изменить исключение?

Выполнить оператор ALTER EXCEPTION могут:

  • Администраторы

  • Владелец исключения;

  • Пользователи с привилегией ALTER ANY EXCEPTION.

Примеры

Example 1. Изменение текста сообщения пользовательского исключения
ALTER EXCEPTION E_LARGE_VALUE 'Значение превышает максимально допустимое';

CREATE OR ALTER EXCEPTION

Назначение

Создание нового или изменение существующего исключения.

Доступно в

DSQL

Синтаксис
CREATE OR ALTER EXCEPTION exception_name '<message>'

Подробнее см. в синтаксисе CREATE EXCEPTION

Если исключения не существует, то оно будет создано.Уже существующее исключение будет изменено, при этом существующие зависимости исключения будут сохранены.

Примеры

Example 1. Создание или изменение пользовательского исключения
CREATE OR ALTER EXCEPTION E_LARGE_VALUE
'Значение превышает максимально допустимое';

DROP EXCEPTION

Назначение

Удаление пользовательского исключения.

Доступно в

DSQL, ESQL

Синтаксис
DROP EXCEPTION exception_name
Table 1. Параметры оператора DROP EXCEPTION
Параметр Описание

exception_name

Имя исключения.

Оператор DROP EXCEPTION удаляет пользовательское исключение.При наличии зависимостей для существующего исключения удаления не будет выполнено.

Кто может удалить исключение?

Выполнить оператор DROP EXCEPTION могут:

  • Администраторы

  • Владелец исключения;

  • Пользователи с привилегией DROP ANY EXCEPTION.

Примеры

Example 1. Удаление пользовательского исключения
DROP EXCEPTION E_LARGE_VALUE;
См. также:

CREATE EXCEPTION, RECREATE EXCEPTION.

RECREATE EXCEPTION

Назначение

Создание или пересоздание пользовательского исключения.

Доступно в

DSQL

Синтаксис
RECREATE EXCEPTION exception_name '<message>'

Подробнее см. в синтаксисе CREATE EXCEPTION

Оператор RECREATE EXCEPTION создаёт или пересоздаёт пользовательское исключение.Если исключение с таким именем уже существует, то оператор RECREATE EXCEPTION попытается удалить его и создать новое исключение.При наличии зависимостей для существующего исключения оператор RECREATE EXCEPTION не выполнится.

Примеры

Example 1. Создание или пересоздание пользовательского исключения
RECREATE EXCEPTION E_LARGE_VALUE
'Значение превышает максимально допустимое';