Как я могу выдать предупреждение в блоке Template::Toolkits CATCH?

В коде, над которым я работаю, есть куча блоков 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, но это кажется слишком многословным для того, что должно быть простой вещью. Есть ли какой-то лучший способ, о котором я не знаю?

5
задан Chas. Owens 13 September 2011 в 14:17
поделиться