处理Sinatra配置块中的错误

时间:2014-01-08 23:54:38

标签: ruby error-handling sinatra

在Sinatra的配置块中处理错误的惯用方法是什么?

例如,如果某个应用无法连接到配置中的数据库,我想传达错误(halt)或显示一些特定的错误页面(redirect)...但是这些方法在configure块中不可用。

configure do
    begin
        db = Sequel.connect ENV['HEROKU_POSTGRESQL_URL'] 
        db.test_connection
    rescue
        # Neither of these are available at `configure` block level
        halt 503, "Unavailable to connect to DB."
        redirect ("/custom-error-page")
    end
end

1 个答案:

答案 0 :(得分:0)

configure块在服务器启动时运行,因此任何面向客户端的操作(例如haltredirect都没有意义,因为在该代码运行时实际上没有用户。 / p>

我只是让错误冒出来,因此当发生这样的事情时拒绝启动服务器,因为很可能在配置失败时你的应用程序会被固有地破坏。