powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Informix [игнор отключен] [закрыт для гостей] / Отслеживание исключительных сиутаций
2 сообщений из 2, страница 1 из 1
Отслеживание исключительных сиутаций
    #37525617
shurik_shink
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите как узнать текст исключения которое произошло в процедуре. Может есть какая то функция которая возвращает текст исключиельной ошибки?

create procedure my_proc()
returning integer, varchar(255);

on exception
rollback;
return -1,'error'; --тут нужно вернуть текст ошибки
end exception;

/*
код процедуры отсутствует чтоб не усложнять деталями
*/

return 1,'';
end procedure;
...
Рейтинг: 0 / 0
Отслеживание исключительных сиутаций
    #37525987
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дам фрагмент своего года -надцалетней давности.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
BEGIN
  DEFINE vMSG varchar( 70 );
  DEFINE vSQL, vISAM integer;
  ON EXCEPTION SET vSQL, vISAM, vMSG
    LET errStr='DATABASE error: '||vMSG||' '||vSQL||'('||vISAM||') in '||errBlock;
    IF needToRollback='Y' THEN
      ROLLBACK WORK;
    END IF;
    INSERT INTO ib_proto (Event,EventType)
    SELECT event, eventtype FROM ib_proto_temp;
    DROP TABLE ib_proto_temp;
    INSERT INTO ib_proto (Event,EventType) VALUES (errStr, 1 );
    LET errStr='UPLOAD WAS FALSE';
    INSERT INTO ib_proto (Event,EventType) VALUES (errStr, 1 );
    RETURN - 1 ;
  END EXCEPTION;
Смысл:
1. Дабы сохранить протокол очень длинной транзакции используем временную таблицу (ib_proto_temp), созданную в режиме "WITH NO LOG", при RollBack-е откатываются все изменения, кроме изменений в этой таблице.
2. Дабы было проще идентифицировать место ошибки, также используем глобальную переменную errBlock
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Отслеживание исключительных сиутаций
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]