Dancer アプリケーション ( API ) からスローされたすべての例外とエラーをキャッチし、それらを HTTP ステータス コードを設定してハッシュ ( JSON としてシリアル化) を返す関数に渡すフックを設定しようとしています。
try/catch を使用するとすべて正常に動作しますが、フックに移動するとコードが実行されますが、関数ではなくデフォルトのエラー メカニズムを使用して応答が形成されます。
これは私が使用しているフックです:
# Handle errors
hook on_handler_exception => sub {
my $e = shift;
debug "ON HANDLER EXCEPTION";
return API::Exception->handle($e); # sets status code and returns hash depending on the exception
};
halt
return の代わりに使用して、例外のそれ以上の処理を停止しようとしましたが、何も変更されませんでした。
ダンサーでこれをどのように達成しますか? ありがとう。