我正在处理的代码在模板中有一堆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 %]
但这对于应该是一件简单的事情来说感觉太冗长了。有没有更好的方法我不知道这样做?