что за ..опа с исключениями в fb2?

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
sydenis
Сообщения: 64
Зарегистрирован: 22 фев 2005, 16:09

что за ..опа с исключениями в fb2?

Сообщение sydenis » 05 дек 2006, 12:54

речь о пользовательских исключениях
до сих пор, что бы получить на клиенте текст, который прописан в эксепшенах на сервере, я брал поле EFIBError.IBMessage немного доводил его лобзиком и всё было хорошо...
а теперь в этом поле приходят такие нехилые текстовочки, что разгрести их руками очень проблематично..
это как-нибудь лечится?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 05 дек 2006, 13:10

"текстовочки" - например?

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 05 дек 2006, 13:30

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

sydenis
Сообщения: 64
Зарегистрирован: 22 фев 2005, 16:09

Сообщение sydenis » 05 дек 2006, 13:40

так сейчас:
Exception 1.
EX_GENERAL.
Произошла ошибка.
At procedure 'NEW_PROC'.

а так было:
.
Произошла ошибка.

посложнее парсить будет, однако..

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 05 дек 2006, 13:58

Это в деврейс. Пусть меняют способ формирования сообщения. Откатывать изменения в сервере вряд ли кто-то будет, а на предложение нового конфигурационного параметра я первый скажу "фи".

buzz
Сообщения: 4
Зарегистрирован: 03 фев 2005, 23:46

Сообщение buzz » 05 дек 2006, 17:46

Dimitry Sibiryakov писал(а):Это в деврейс. Пусть меняют способ формирования сообщения. Откатывать изменения в сервере вряд ли кто-то будет, а на предложение нового конфигурационного параметра я первый скажу "фи".
В этом поле выводится полное оригинальное сообщение сервера. и никто этот способ менять не будет. Иначе обязательно найдется другой недовольный , который резонно начнет возмущаться что
сервер дисциплинированно передает инфу а злобный
фибплюс корежит ее по своему усмотрению лишь бы домохозяйкам угодить

sydenis
Сообщения: 64
Зарегистрирован: 22 фев 2005, 16:09

Сообщение sydenis » 05 дек 2006, 18:06

упс... приплыли

buzz
Сообщения: 4
Зарегистрирован: 03 фев 2005, 23:46

Сообщение buzz » 05 дек 2006, 18:32

sydenis писал(а):упс... приплыли
никто никуда не приплыл. смотри ответ в конференции

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 06 дек 2006, 07:46

buzz писал(а):В этом поле выводится полное оригинальное сообщение сервера. и никто этот способ менять не будет.
Ваше право, но лично я бы немного расширил TIBDataBaseErrorMessages и таким образом отсек бы для нежелающих Call Stack.

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение hvlad » 06 дек 2006, 10:41

buzz писал(а):В этом поле выводится полное оригинальное сообщение сервера. и никто этот способ менять не будет. Иначе обязательно найдется другой недовольный , который резонно начнет возмущаться что
сервер дисциплинированно передает инфу а злобный
фибплюс корежит ее по своему усмотрению лишь бы домохозяйкам угодить
Вообще говоря 'полное оригинальное сообщение сервера' это статус-вектор, а не сумма содержащиъся в нём строк :)
Стек имеет свой отдельный код ошибки, так что никакой сложности с парсингом статус-вектора я лично не вижу.
Про домохозяек - согласен :)

PS А warning'и вы показывать умеете ? А то есть шанс, что в 2.1 они будут не только gbak'у отдаваться

sydenis
Сообщения: 64
Зарегистрирован: 22 фев 2005, 16:09

Сообщение sydenis » 06 дек 2006, 16:13

кстати про домохозяек и парсинг статус-вектора..
в классе EFIBError введено прилично текстовых полей,
FSQLMessage :string;
FIBMessage :string;
FCustomMessage: string;
почему бы их не использовать для такой актуальной задачи как получение пользователем своего текста? Неужели, задачи, для которых они используются сейчас более актуальны?
Даже если и так, то, имхо, ничто не мешает добавить ещё одно N+1-e поле...

Ответить