|
Блок BEGIN - WHEN - END
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovКак в таблицу s_test попало -1, когда оно должно было пропуститься из-за выкинутого в четвёртом внутреннем обработчике исключения? Почему пятый обработчик не только выполнился, но и его результат выжил (а первый и третий при этом умерли)? это один и тот же вопрос на самом деле. Получается, что исключение из WHEN ловится следующим же WHEN того же уровня? Прелестно! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2016, 18:23 |
|
Блок BEGIN - WHEN - END
|
|||
---|---|---|---|
#18+
dimitrПолучается, что исключение из WHEN ловится следующим же WHEN того же уровня? Прелестно! Увы, нет. Всё гораздо хуже и прямо связано с твоим комментом к пулл-реквесту на CORE-5173. Обрати внимание на порядок записей в таблице errs. Работает это так: обработчики исключений вызываются рекурсивно. (Ага!) Четвёртый внутренний обработчик вызвал внешний обработчик, тот откатил что откатить мог (всё что было сделано внутренним блоком плюс работу первого и третьего обработчиков), и вернулся. А уже потом управление пошло дальше - к пятому обработчику, вставке -1 и далее везде. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2016, 18:39 |
|
Блок BEGIN - WHEN - END
|
|||
---|---|---|---|
#18+
у меня давно уже сидит подозрение, что рекурсия обработчикам нафиг не нужна. Но глубоко эту мысль я не копал... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2016, 18:50 |
|
Блок BEGIN - WHEN - END
|
|||
---|---|---|---|
#18+
если я правильно понимаю, то вызов обработчика вместо: temp = EXE_looper(tdbb, request, temp); должен быть: EXE_looper(tdbb, request, temp); и ниже возврат parentStmt. Тогда по выходу из текущего обработчика управление всегда перейдет на END того же блока, а не туда, откуда пришло исключение. И я даже показывал тебе патч с этим изменением. Только ХЗ, что еще это может сломать... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2016, 18:57 |
|
Блок BEGIN - WHEN - END
|
|||
---|---|---|---|
#18+
dimitrу меня давно уже сидит подозрение, что рекурсия обработчикам нафиг не нужна. Но глубоко эту мысль я не копал... Меня тоже удивляет чего надо накуриться чтобы сделать итерационный лупер с элементами рекурсии в самых неподходящих местах. dimitrИ я даже показывал тебе патч с этим изменением. Только ХЗ, что еще это может сломать... Точно не мне. И таки да, это может наломать разных дров. Но четвёрка-то ещё в пелёнках, она и без этого иногда падает, так что хуже стать не должно по идее. Имеет смысл этот тесткейс загнать в трекер как бага или он таки as designed? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2016, 19:04 |
|
|
start [/forum/topic.php?fid=40&gotonew=1&tid=1562274]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
14ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 169ms |
0 / 0 |