私が取り組んでいるコードには、テンプレートにたくさんのTRY
/CATCH
ブロックがあります。Template::Toolkit
それらは次のようになります。
[% TRY; x = OBJ.method(data); CATCH; "<!-- error: $error -->"; END %]
これは、2 つの観点から見ても悪いことです。1 つ目は、ユーザーに渡される HTML にエラーが挿入されていることです。2 つ目は、開発者がエラーを見つけにくいことです。私の意見では、すべてのエラーは同じエラー ログに記録されるべきです。今、私はwarn
関数を介してそれを行います。上記のコードを次のように変更しました
[% TRY %]
[% x = OBJ.foo(data) %]
[% CATCH %]
[% RAWPERL %]
warn "error calling method foo on a bar object: " . $stash->get("error");
[% END %]
[% END %]
しかし、これは単純なはずのことに対して冗長すぎるように感じます。これを行うために私が知らないより良い方法はありますか?