【发布时间】:2012-01-21 00:13:37
【问题描述】:
我的用例是我想在 sinatra 中进行错误处理。为此,我将错误处理程序设置如下
error 0..600 do
@@logger.error("error reason #{env['sinatra.error']}")
end
如果错误是由显式引发异常引起的,则 sinatra.error 变量会被正确设置
get '/' do
raise "Fail the request"
end
但如果使用停止来终止请求,则不会设置 sinatra.error。查看 sinatra 代码,这似乎符合预期,因为抛出 :halt 会导致控制流一直向上调用,从而绕过 sinatra.error 变量的设置。
我的问题是如何将错误处理程序与停止一起使用,以便我可以在错误处理程序中找到错误的原因。
【问题讨论】:
标签: sinatra