Jan*_*ane 5 ruby error-handling sinatra
如果出现异常,如何指定全局救援,如果将Sinatra用于API或应用程序,如何处理日志记录?
404s可以在not_found方法的帮助下处理,例如:
not_found do
'Site does not exist.'
end
Run Code Online (Sandbox Code Playgroud)
通过使用块调用error方法可以处理500s,例如:
error do
"Application error. Pls try later."
end
Run Code Online (Sandbox Code Playgroud)
可以通过sinatra.errorin 访问错误的详细信息request.env:
error do
'An error occured: ' + request.env['sinatra.error'].message
end
Run Code Online (Sandbox Code Playgroud)
我在开发环境中无法立即使用此功能-要使其正常工作,我必须show_exceptions在sinatra配置中将其设置为false。
class BaseApp < Sinatra::Base
configure { set :show_exceptions, false }
error do |err|
raise "Error: #{err}"
end
end
Run Code Online (Sandbox Code Playgroud)
将此设置设置为true时,将启用错误页面,这些错误页面会在发生未处理的异常时显示回溯和环境信息,但是我只能通过禁用它来触发自定义错误。
| 归档时间: |
|
| 查看次数: |
3895 次 |
| 最近记录: |