powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вопрос по возбуждению исключения в UDF
17 сообщений из 17, страница 1 из 1
Вопрос по возбуждению исключения в UDF
    #39477052
Фотография CyberMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть UDF, например, DIVIDE, которая делит одно число на другое. При передаче туда делителя 0, я хочу, чтобы выполнение запроса останавливалось с исключением в FB, а не с остановкой сервера. Есть ли способ это сделать в UDF? Или единственный вариант - писать ХП-обертку, которая будет проверять входящие аргументы и сама возбуждать исключение?
...
Рейтинг: 0 / 0
Вопрос по возбуждению исключения в UDF
    #39477070
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax,

в udf - не получится. нельзя там исключения sql генерировать. udf не должна вообще никаких исключений давать, никак и никогда. Потому что ЭТО исключение поедет как исключение ФБ при выполнении UDF.
...
Рейтинг: 0 / 0
Вопрос по возбуждению исключения в UDF
    #39477088
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMaxЕсть ли способ это сделать в UDF?
В UDF - нет. В UDR - да.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вопрос по возбуждению исключения в UDF
    #39477137
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax, что мешает тебе обернуть все реализации своих UDF функций в try-catch?
...
Рейтинг: 0 / 0
Вопрос по возбуждению исключения в UDF
    #39477138
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,
ты вопрос не внимательно прочёл. Цель не подавить исключение, а передать его в Firebird так будто это произошло исключение FB. В UDR можно сделать, в UDF - нет.
...
Рейтинг: 0 / 0
Вопрос по возбуждению исключения в UDF
    #39477159
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисrdb_dev,
ты вопрос не внимательно прочёл. Цель не подавить исключение, а передать его в Firebird так будто это произошло исключение FB.Зачем? O_o
...
Рейтинг: 0 / 0
Вопрос по возбуждению исключения в UDF
    #39477190
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

представь что ты работаешь в 3.0 с обычной PSQL функцией

Код: sql
1.
2.
3.
4.
5.
6.
7.
function (a int, b int) returns int
as
begin
  if (b = 0) then
    exception e_divide_by_zero;
  return a / b;
end



Он хочет примерно тоже самое в UDF.
...
Рейтинг: 0 / 0
Вопрос по возбуждению исключения в UDF
    #39477208
Жышы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CyberMax,

введи доп. возвращаемый параметр в udf. Например, типа "строка". Если вызвавшая эту UDF процедура/триггер по завершению udf видит, что параметр не пуст - пусть генерит исключение.
...
Рейтинг: 0 / 0
Вопрос по возбуждению исключения в UDF
    #39477441
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисОн хочет примерно тоже самое в UDF.В общем-то, ничто не мешало разработчикам ФБ для виндовой версии повесить VE обработчик и ловить абсолютно все исключения, в т.ч. и в UDF, но, почему-то, не сделали. Мало портабельно, конечно...
...
Рейтинг: 0 / 0
Вопрос по возбуждению исключения в UDF
    #39477533
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

И тебе ничего не мешает. Дерзай.
...
Рейтинг: 0 / 0
Вопрос по возбуждению исключения в UDF
    #39477550
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryrdb_dev,

И тебе ничего не мешает. Дерзай.Мне мешает нежелание изучать исходники ФБ и искать в них порядок возбуждения EXCEPTION.
...
Рейтинг: 0 / 0
Вопрос по возбуждению исключения в UDF
    #39477554
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

А разработчикам, например, мешает нарушение кроссплатформенности и околонулевая востребованность функции.
...
Рейтинг: 0 / 0
Вопрос по возбуждению исключения в UDF
    #39477568
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryrdb_dev,
А разработчикам, например, мешает нарушение кроссплатформенности и околонулевая востребованность функции.Про кроссплатформенность я так и написал: " Мало портабельно, конечно... "
...
Рейтинг: 0 / 0
Вопрос по возбуждению исключения в UDF
    #39477603
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devПро кроссплатформенность я так и написал: "/Мало портабельно, конечно.../"

Более того, это и в пределах винды неработоспособно. А обработчик там давно висит. Как, ты
думаешь, ловятся AV, случающиеся в UDF?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вопрос по возбуждению исключения в UDF
    #39477731
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovБолее того, это и в пределах винды неработоспособно. А обработчик там давно висит. Как, ты
думаешь, ловятся AV, случающиеся в UDF?..С какого момента функция WINAPI AddVectoredExceptionHandler() вдруг перестала поддерживаться?
...
Рейтинг: 0 / 0
Вопрос по возбуждению исключения в UDF
    #39477739
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devС какого момента функция WINAPI AddVectoredExceptionHandler() вдруг перестала поддерживаться?

Лучше скажи с какого момента она стала работать с исключениями, выбрасываемыми кодом,
сгенерированным Delphi или GCC.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вопрос по возбуждению исключения в UDF
    #39477754
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, её всегда можно было использовать для перехвата исключений в x86_ 32 независимо от того, для какого компилятора Си или Delphi реализован обработчик . Одна беда - этот способ не годится для x86_64.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вопрос по возбуждению исключения в UDF
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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