我正在处理的代码在Template :: Toolkit模板中有一堆TRY / CATCH块.它们看起来像这样:
[% TRY; x = OBJ.method(data); CATCH; "<!-- error: $error -->"; END %]
从两个角度来看这很糟糕.首先,错误被插入到交给用户的HTML中,其次,很难为开发人员找到错误.在我看来,所有错误都应该记录到相同的错误日志中.现在我通过警告功能这样做.我已将上面的代码更改为
[% TRY %] [% x = OBJ.foo(data) %] [% CATCH %] [% RAWPERL %] warn "error calling method foo on a bar object: " . $stash->get("error"); [% END %] [% END %]
但这对于应该是一件简单的事情来说过于冗长.有没有更好的方法我不知道这样做?