|
|
|
Откуда запущен Exception?
|
|||
|---|---|---|---|
|
#18+
Ситуация: Функция nvo_main.uf_main вызывает nvo_A.uf_1; в свою очередь, nvo_A.uf_1 вызывает nvo_B.uf_2. nvo_B.uf_2 запускает (throws) Exception; nvo_A.uf_1 НЕ обрабатывает его, а передаёт дальше, а вот nvo_main.uf_main уже перехватывает и обрабатывает этот Exception. Вопрос: есть ли возможность в uf_main узнать какой скрипт какого объекта запустил исключение (т.е. в данном примере получить "nvo_B.uf_2")? А ещё лучше = вообще "развернуть" стек вызовов? Разумеется, эту информацию можно тупо загнать в Exception в nvo_B.uf_2 используя SetMessage (вместе с описанием ошибки), но, может, есть решение поэлегантней? Использую PB8. Thanx! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2011, 23:50 |
|
||
|
Откуда запущен Exception?
|
|||
|---|---|---|---|
|
#18+
Ursego, Не знаю, поможет ли, есть функции PopulateError() и SignalError(). Туда можно вогнать, в какой функции чаво происходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 11:32 |
|
||
|
Откуда запущен Exception?
|
|||
|---|---|---|---|
|
#18+
PopulateError() - это значит лишние строки кода когда эксепшен запускается, а моя цель - укоротить скрипты. Пока что решил проблему просто - создав в своём NVO функцию uf_throw(as_msg, as_script), имеющую следующий код: Код: plaintext 1. 2. 3. 4. 5. Так что запуск эксепшена теперь довольно компактен (правда, передачу нмени скрипта элегантным не назовёшь): Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 20:17 |
|
||
|
Откуда запущен Exception?
|
|||
|---|---|---|---|
|
#18+
К тому-же, если делать такую функцию универсальной (в отдельном объекте), то ещё и имя объекта придётся передавать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2011, 20:24 |
|
||
|
Откуда запущен Exception?
|
|||
|---|---|---|---|
|
#18+
Если кому интересно, решение проблемы описано тут (может, не идеальное, но удобное практически - жить можно). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2012, 23:59 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=37301521&tid=1335592]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
154ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 484ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...