Вниз
Скачать: CL | DM;

Сообщение 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.022 c
14-1088593848
Piter
2004-06-30 15:10
2004.07.25
Дремучие тормозят


11-1076449964
DDA
2004-02-11 00:52
2004.07.25
Тормаза


14-1088515619
J_S
2004-06-29 17:26
2004.07.25
Питерцы, а не собраться ли нам - 2


6-1085402630
Barmutik
2004-05-24 16:43
2004.07.25
IntraWeb и Session expired


14-1089107031
REA
2004-07-06 13:43
2004.07.25
Stop bits




   Наверх