我正在尝试设置一个挂钩来捕获从我的 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 来停止对异常的任何进一步处理,但它没有改变任何东西。
我将如何使用 Dancer 完成此任务?谢谢。