Ruby 处理Sinatra内部的错误';s配置块

Ruby 处理Sinatra内部的错误';s配置块,ruby,error-handling,sinatra,Ruby,Error Handling,Sinatra,处理Sinatra配置块内部错误的惯用方法是什么 例如,如果某个应用程序无法连接到配置中的数据库,我想要么传达错误(halt),要么显示某个特定的错误页面(redirect)。。。但是这些方法在configure块中不可用 configure do 开始 db=Sequel.connect ENV['HEROKU\u POSTGRESQL\u URL'] db.test\u连接 营救 #这两个选项在“配置”块级别都不可用 暂停503,“无法连接到数据库。” 重定向(“/自定义错误页”) 终止 终

处理Sinatra配置块内部错误的惯用方法是什么

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

configure do
开始
db=Sequel.connect ENV['HEROKU\u POSTGRESQL\u URL']
db.test\u连接
营救
#这两个选项在“配置”块级别都不可用
暂停503,“无法连接到数据库。”
重定向(“/自定义错误页”)
终止
终止

服务器启动时,
configure
块运行,因此任何面向客户端的操作,如
halt
redirect
都没有意义,因为运行该代码时实际上没有用户


我只会让错误冒泡,因此在发生这种情况时拒绝启动服务器,因为很可能在配置失败时应用程序会固有地损坏。

您会让它冒泡到什么程度?您在哪里发现拒绝服务器启动的错误?我的意思是根本不捕获错误。我希望以有意义的方式传达错误消息,而不是在服务器崩溃时出现一般性的“内部网络错误”。同样,您将向谁显示错误?发生异常时,没有用户。感谢回复。让我们假设我没有做像连接到DB那样奇怪的事情,而是做一些更经常出错的事情;例如,从远程API加载数据。我觉得你是在假设应用程序只能运行一个实例;而我在一个云服务上有多个实例。仅仅因为一个线程在某个时间点加载数据,就不能保证其他实例在初始化时能够连接到数据源,用户会感到疑惑。