|
|
|
Как узнать имя Event'а внутри него же?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, уважаемые форумчане! Подскажите, пожалуйста, как решить задачку? Можно ли узнать имя события/функции внутри самого события/функции? Наподобие ClassName() для объекта? Это нужно для логирования ошибок, в частности их места возникновения. Конечно, можно в скрипте "тупо" забить его имя в константу и в случае ошибки передавать его в обработчик, но, может быть, есть более элегантный способ? Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2006, 23:05 |
|
||
|
Как узнать имя Event'а внутри него же?
|
|||
|---|---|---|---|
|
#18+
AmberitПодскажите, пожалуйста, как решить задачку? Можно ли узнать имя события/функции внутри самого события/функции? Наподобие ClassName() для объекта? Это нужно для логирования ошибок, в частности их места возникновения. PopulateError(number,text) Fills in the Error object without causing a SystemError event. не помню в какой версии эта функция появилась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2006, 14:57 |
|
||
|
Как узнать имя Event'а внутри него же?
|
|||
|---|---|---|---|
|
#18+
Спасибо большое, самое оно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2006, 23:04 |
|
||
|
Как узнать имя Event'а внутри него же?
|
|||
|---|---|---|---|
|
#18+
Логирование ошибок делается в 3-х местах 1) application/event systemerror - сюда сваливаются все runtime ошибки 2) u_datawindow(inherited datawindow)/event error&dberror - сюда сваливаются ошибки обращений к БД Но сама мысль использования PopulateError интересна - вот как раз была идея специального логирования (по флажку) обращений к тем или иным модулям - типа исследования потока запросов и пользовательских операций при штатной эксплуатации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2006, 15:02 |
|
||
|
Как узнать имя Event'а внутри него же?
|
|||
|---|---|---|---|
|
#18+
Все верно, но лично я для логирования и обработки ошибок использую функцию в объекте транзакции... А вот ее уж и вызываю из systemerror'а, dberror'а и остальных мест (например, функций объекта), где нужна обработка ошибок... Такая функция у меня занимается логированием ошибки в БД/файл, отображением ее на экран юзеру, и в случае ошибки БД обрезанием служебной части ошибки, выводя только осмысленную информацию (например, при дублирование первичного ключа выводится заранее предопределенное сообщение типа ДУБЛЬ ПЕРВИЧНОГО КЛЮЧА - ТАКАЯ ЗАПИСЬ УЖЕ СУЩЕСТВУЕТ, вместо оракловского ora-00001 unique constraint violated или как там его...). А в протокол уже пишется полный текст ошибки... До этого момента место возникновения ошибки приходилось передавать в эту функцию как параметр, но теперь - одним параметром стало меньше... Очень удобно, так как объект транзакции (ПФС-шный), используется в очень многих приложениях, и получается централизованная обработка ошибок... Может быть, поддержим тему? Уважаемые форумчане, поделитесь опытом, а как Вы обрабатываете ошибки в приложении? Возможно, используете более интересные варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2006, 13:00 |
|
||
|
|

start [/forum/topic.php?fid=15&msg=34006477&tid=1337598]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
148ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 430ms |

| 0 / 0 |
