Sinatra 错误
error 处理器,在任何路由代码块或者过滤器抛出异常的时候会被调用。异常对象可以通过 sinatra.error Rack 变量获得:
error do
'Sorry there was a nasty error - ' + env['sinatra.error'].name
end
自定义错误:
error MyCustomError do
'So what happened was...' + env['sinatra.error'].message
end
那么,当这个发生的时候:
get '/' do
raise MyCustomError, 'something bad'
end
你会得到:
So what happened was... something bad
另一种替代方法是,为一个状态码安装错误处理器:
error 403 do
'Access forbidden'
end
get '/secret' do
403
end
或者一个范围:
error 400..510 do
'Boom'
end
在运行在 development 环境下时,Sinatra 会安装特殊的 not_found 和 error 处理器。