В коде, над которым я работаю, есть куча блоков TRY
/CATCH
в шаблонах Template::Toolkit
. Они выглядят следующим образом:
[% TRY; x = OBJ.method(data); CATCH; "<!-- error: $error -->"; END %]
Это плохо с двух точек зрения. Во-первых, ошибка вставляется в HTML, передаваемый пользователю, а во-вторых, ошибку трудно найти разработчикам. По моему мнению, все ошибки должны регистрироваться в одном журнале ошибок. Сейчас я делаю это через функцию warn
. Я изменил код выше на
[% TRY %]
[% x = OBJ.foo(data) %]
[% CATCH %]
[% RAWPERL %]
warn "error calling method foo on a bar object: " . $stash->get("error");
[% END %]
[% END %]
warn, но это кажется слишком многословным для того, что должно быть простой вещью. Есть ли какой-то лучший способ, о котором я не знаю?