Форум: "Базы";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
ВнизСообщение EXCEPTION а Найти похожие ветки
← →
3APA3A (2004-06-27 21:28) [0]Создаю я exception
CREATE EXCEPTION TEST_EXPT "Some exception";
Когда он срабатывает на клиенте вылезает сообщение типа
(название класса не помню) with message "exception 1 : Some exception".
Вопросы
1) Как мне распознать, что это именно "мое" исключение а не какой-нибудь системный сбой? (Класс исключения то у всех одинаковый)
2) Можно ли убрать строки "exception 1..." и просто выводить "Some exception" (число - это как я понял ExceptionID)...
← →
Курдль (2004-06-27 21:42) [1]
...
except
on E: EDataBaseError do Application.MessageBox("Ошибка", E.Message, MB_ICONSTOP);
В некоторых СУБД можно генерить исключения с определенным кодом и обрабатывать его поE.ErrorCode
← →
DrPass © (2004-06-27 22:52) [2]1. По свойству EIBInterBaseError.IBErrorCode
2. Убрать лишнюю часть строки EIBInterBaseError.Message - это проблема?
← →
Курдль (2004-06-27 23:25) [3]
> DrPass © (27.06.04 22:52) [2]
A кто сказал про InterBase????
← →
DrPass © (2004-06-28 00:58) [4]
> A кто сказал про InterBase????
Я не обратил внимания. Но я думаю, автор поста догадается заменить EIBInterBaseError на EDataBaseError?
← →
3APA3A (2004-06-28 11:13) [5]Извиняюсь, забыл указать, но речь действительно идет про InterBase.
По свойству EIBInterBaseError.IBErrorCode и как мне узнать какой код будет у моего исключения?
Убрать лишнюю часть строки EIBInterBaseError.Message - это проблема? - я не совсем это имел в виду.... Может быть у сервера где-нибудь в настройках есть это....
← →
Digitman © (2004-06-28 12:31) [6]
> По свойству EIBInterBaseError.IBErrorCode
В общем случае нельзя жестко привязываться к IBErrorCode
после backup/restore коды польз.исключений могут измениться
В частном случае в принципе можно привязаться к IBErrorCode единственного польз.исключения TEST_EXPT, но при этом придется задействовать соотв.FB-фичу:
1. В ХП/триггере возбуждаем польз.исключение
EXCEPTION TEST_EXPT "0000 Some exception";
где 0000 - стр.представление некоего фиксированного спецкода ошибки для анализа на кл.стороне
2. На кл.стороне
on e:EIBInterBaseError do
case IBErrorCode of
1: begin
FixedErrCode := IntToStr(Copy(e.message, 1, 4)); // прикладной код ошиб.ситуации 0000
case FixedErrCode of
0: Showmessage("Такая-то ошибочная ситуация");
...
end;
end;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.052 c