exception
Содержание
EXCEPTION
Версии сервера
Firebird 1.5 Firebird 2.0
Формат
EXCEPTION [исключение [сообщение]];
Описание
Возбуждение пользовательского исключения или повторный вызов исключения.
В версии 1.5 максимальная длина сообщения составляет 78 байт. Начиная с версии 2.0 - 1021 байт.
Пример
для примера можно изучить процедуру SHIP_ORDER базы employee.
создание исключения (полный синтаксис см. CREATE EXCEPTION)
CREATE EXCEPTION ORDER_ALREADY_SHIPPED 'Order status is "shipped."';
вызов по условию
IF (ord_stat = 'shipped') THEN BEGIN EXCEPTION order_already_shipped; END
вызов по условию с заменой сообщения
IF (ord_stat = 'shipped') THEN BEGIN EXCEPTION order_already_shipped 'Order status is "'||ord_stat||'"'; END
подмена стандартного исключения
CREATE EXCEPTION COUNTRY_EXIST ''; CREATE PROCEDURE ADD_COUNTRY as begin insert into country (country, currency) values ('Canada', 'CdnDlr'); when sqlcode -803 do exception COUNTRY_EXIST 'Такая страна уже добавлена!'; end
См. также
CREATE EXCEPTION, DROP EXCEPTION, ALTER EXCEPTION, RECREATE EXCEPTION, GDSCODE, SQLCODE, GDSCODES (Коды ошибок Firebird)
Источник
%Firebird%\doc\sql.extensions\README.exception_handling
https://www.firebirdsql.org/file/documentation/reference_manuals/Firebird_Language_Reference_RUS.pdf
exception.txt · Последнее изменение: 2018/02/08 14:41 — german
Обсуждение
Ребят возникла проблема в Firebird. У меня в первой процедуре при вводе некорректных данных вызывается исключение exception.Во второй процедуре я передаю данные в первую и после её выполнения получаю выходные данные, но исключения уже не срабатывают. Как можно исправить это без переписывания исключений во вторую процедуру?