powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Перехват исключений в цикле
8 сообщений из 8, страница 1 из 1
Перехват исключений в цикле
    #39950484
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот такой код
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
EXECUTE IBEBLOCK
AS
BEGIN
  SELECT
    *
  FROM
    rdb$database d AS DATASET ds;

  WHILE (NOT ibec_ds_Eof(ds)) DO
  BEGIN
    TRY
      EXCEPTION TEST 'Test';
    EXCEPT
      EXCEPTION NEW_TEST 'New test';
    END
    ibec_ds_Next(ds);
  END
  CLOSE DATASET ds;
END

приводит к зависанию эксперта и отжиранию процессорного времени

С уважением, Vasilisk
...
Рейтинг: 0 / 0
Перехват исключений в цикле
    #39950498
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выйти из цикла не может. А в чем смысл второго исключения?
...
Рейтинг: 0 / 0
Перехват исключений в цикле
    #39950542
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert
. А в чем смысл второго исключения?
Детализация ошибки. В оригинале так
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
try
  ibec_PrepareStatement(db, var_sql, '', true);
except
  var_msg = 'Invalid statement for table ' || ibec_ds_GetField(ds, 0) ||
    '. Field ' || ibec_ds_FieldName(ds, i) || ibec_CRLF() ||
    ibec_err_Message();
  exception INVALID_STATEMENT var_msg;
end
...
Рейтинг: 0 / 0
Перехват исключений в цикле
    #39950556
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Детализация ошибки. В оригинале так


Я все равно не вижу смысла. Ты с этим исключением что дальше делать-то собираешься? Ведь это не серверный PSQL, здесь не надо генерировать исключение, чтобы оно ушло на клиента и транзакция откатилась.
...
Рейтинг: 0 / 0
Перехват исключений в цикле
    #39950567
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert
Ты с этим исключением что дальше делать-то собираешься?
Посмотреть глазами, чтобы понять где именно ошибка. И при этом прервать весь скрипт. У меня больше 100 SQL, которые лежат в блобах.

Если сложно исправлять, фиг с ним, заменю exception на ShowMessage. Но мне все равно после этого нужно прервать скрипт
...
Рейтинг: 0 / 0
Перехват исключений в цикле
    #39950574
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_

Если сложно исправлять, фиг с ним, заменю exception на ShowMessage. Но мне все равно после этого нужно прервать скрипт


Исправить-то я уже исправил вроде, а выход из блока по exit делается.
...
Рейтинг: 0 / 0
Перехват исключений в цикле
    #39950646
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert
выход из блока по exit делается.
Там после блока еще много чего
...
Рейтинг: 0 / 0
Перехват исключений в цикле
    #39950675
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Там после блока еще много чего


Код: plsql
1.
2.
3.
4.
5.
6.
try
    ...
except
    ...
    raise;
end
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Перехват исключений в цикле
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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