powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Обработка ошибок в PSQL
18 сообщений из 18, страница 1 из 1
Обработка ошибок в PSQL
    #39887713
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в операторе
Код: sql
1.
 when .... do 


можно как-то получить номер строки процедуры в которой произошла ошибка??
...
Рейтинг: 0 / 0
Обработка ошибок в PSQL
    #39887721
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m,

ШТО??? а в Дельфи или C++ можно "номер строки" получить?
Код процедуры или триггера (и вообще всего) компилируется в байт-код, называемый BLR. В нём нет строк. Это вам не Basic :-)
...
Рейтинг: 0 / 0
Обработка ошибок в PSQL
    #39887725
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NON$CALL_STACK попробуй.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обработка ошибок в PSQL
    #39887742
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
m7m,

ШТО??? а в Дельфи или C++ можно "номер строки" получить?
Код процедуры или триггера (и вообще всего) компилируется в байт-код, называемый BLR. В нём нет строк. Это вам не Basic :-)

В C++ - можно. На этапе компиляции. Макрос assert, например. Ну и если обзаботиться специальной сборкой.
...
Рейтинг: 0 / 0
Обработка ошибок в PSQL
    #39887744
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё,

ну, это да. но тут - вряд ли. Тем более, речь идет про номер строки при обработке ошибки в этом же коде. Нафига это надо - я не представляю.
В PSQL Firebird ошибки бывают только рантаймовые, синтаксических нет, потому что всё уже скомпилировано. Поэтому область появления ошибок может быть идендифицирована достаточно четко.
Особенно если прочитать
http://www.ibase.ru/savepoints/

Понятно, что в when any do может прилететь что угодно, что происходило до того. Но в любом случае, для обработки ошибок даже в таком месте всё равно надо знать, что может происходить ДО этого самого when any.
А автор вопроса про when any не спрашивал.
...
Рейтинг: 0 / 0
Обработка ошибок в PSQL
    #39887745
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m,

а зачем именно в операторе ?
Клиенту приходит ошибка и, по возможности полный, стек вызовов (с номерами строк), к ней приведший.
Или нужно именно в PSQL ?
...
Рейтинг: 0 / 0
Обработка ошибок в PSQL
    #39887752
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad
m7m,

а зачем именно в операторе ?
Клиенту приходит ошибка и, по возможности полный, стек вызовов (с номерами строк), к ней приведший.
Или нужно именно в PSQL ?


Да именно в PSQL
А вот по поводу зачем
Есть куча лицевых счетов и соответственно процедуры расчета услуг
Расчет проводится для определенной выборки (по некоторым признакам) лицевых счетов
при этом дабы ошибки во время выполнения расчета лицевого счета не "мешали" расчету
остальных они "блокируются" оператором When ... Do с записью некоторой информации
в лог. Поскольку процедуры достаточно громоздкие то номер строки процедуры
облегчил-бы поиск места возникновения, ну и соответственно дальнейшее исправление
...
Рейтинг: 0 / 0
Обработка ошибок в PSQL
    #39887765
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m,

Для этого люди придумали декомпозицию как краеугольный камень процедурного программирования.
...
Рейтинг: 0 / 0
Обработка ошибок в PSQL
    #39887767
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m,

допустим, вы это же самое пишете в Дельфи. И там try except end/try finally end.
И нет номеров строк. Ваши действия? Наверное, правильно расположить блоки try except?
Или же вылавливать НОМЕР СТРОКИ процедуры, который будет забиваться вами в код вручную?
Что за безумная идея? Ну добавит кто-нибудь потом еще одну строку, и будет N+1, и ваш when
нихрена не сработает.
Ё-моё, это же программирование, оно не так работает.
...
Рейтинг: 0 / 0
Обработка ошибок в PSQL
    #39887782
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
NON$CALL_STACK попробуй.

Спасибо
Попробую
...
Рейтинг: 0 / 0
Обработка ошибок в PSQL
    #39887785
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
m7m,

допустим, вы это же самое пишете в Дельфи. И там try except end/try finally end.
И нет номеров строк. Ваши действия? Наверное, правильно расположить блоки try except?
Или же вылавливать НОМЕР СТРОКИ процедуры, который будет забиваться вами в код вручную?
Что за безумная идея? Ну добавит кто-нибудь потом еще одну строку, и будет N+1, и ваш when
нихрена не сработает.
Ё-моё, это же программирование, оно не так работает.

Ты не поверишь.
Мало того, что с номерами строк, так еще и с автоматическим показом точки бага в исходниках.
И даже смс-ку на мобилу разработчика пришлёт.
И даже не под дебаггером.
...
Рейтинг: 0 / 0
Обработка ошибок в PSQL
    #39887787
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad F
m7m,

Для этого люди придумали декомпозицию как краеугольный камень процедурного программирования.

и какое это отношение имеет к заданному вопросу

kdv,
Зачем три раза писать об одном и том-же
я с первого раза понял, что вам это не нравится,
и вы считаете такой подход неправильным


мне нужен просто ответ на мой вопрос
...
Рейтинг: 0 / 0
Обработка ошибок в PSQL
    #39887796
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m
Dimitry Sibiryakov
NON$CALL_STACK попробуй.

Спасибо
Попробую

Попробовал
Однако в моем случае это не то
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
create procedure ....
as
.......
begin
.......
.......
.......
  when any do
  begin
    select ....... from Mon$Call_Stack C
    .......
    .......
  end
end


выдает номер строки в которой этот самый "select ....... from Mon$Call_Stack C" и есть
что при некотором размышлении вполне ожидаемо

а мне нужна именно строка на которой произошла ошибка
...
Рейтинг: 0 / 0
Обработка ошибок в PSQL
    #39887811
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если весь стэк пройти?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Обработка ошибок в PSQL
    #39887852
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m
Vlad F
m7m,

Для этого люди придумали декомпозицию как краеугольный камень процедурного программирования.

и какое это отношение имеет к заданному вопросу

Разбей свои "достаточно" громоздкие" на ряд более мелких и локализация ошибок выполнения станет намного проще.
...
Рейтинг: 0 / 0
Обработка ошибок в PSQL
    #39887905
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
А если весь стэк пройти?

Да та же самая история
выдает стек вызовов с номерами строк
однако по прежнему для процедуры в которой произошла ошибка
номер строки указывает на строку обработки ошибки
...
Рейтинг: 0 / 0
Обработка ошибок в PSQL
    #39887908
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad F
Разбей свои "достаточно" громоздкие" на ряд более мелких и локализация ошибок выполнения станет намного проще.

К моему сожалению:
1. это сейчас не реально
2. не решает поставленную мной передо мной задачу
...
Рейтинг: 0 / 0
Обработка ошибок в PSQL
    #39887913
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m,

Значит, страдай.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Обработка ошибок в PSQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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