parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Как получить строку/символ выполняемого кода

crypto 13.04.2010 03:49

Вернее сказать, как правильно подойти к вопросу о генерации ошибок и логировании по разным участкам кода. Например, в разных местах
кода я расставляю уловия возникновения которых считается логической ошибкой. Например:
somecode.p
---------------------
104: ^if(!def $somevar){ ^error[form_notnull] }{ все ок }

хотелось бы конечно ловить в ^error[] имя файла somecode.p и
хотя бы строчку где я вызвал этот ^error[] чтобы помимо вывода ошибки на экран писать более очевидные логи для себя.

Конечно правильно Raise-ить ошибку встроенным для этого методом типа ^throw, но ведь тогда чтобы софтварно ругнуться не прерывая работу дальнейшего кода надо весь код оборачивать в ^try{} ?
а на postprocess уже поздно это делать... так как в $body
уже будет закрыт </BODY></HTML> и регеэкспом вставлять некий <div>с ошибкой</div> как-то уродливо. Мысли конечно есть, поскольку все разбито на объектные файлы, модули, шаблоны, то универсальное место где все можно завернуть в ^try найдется.

Просто может есть у форумчан какие-то свои хитрости? Чтобы не изобретать велосипеда?