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