我正在为 Ruby Rails 应用程序编写测试,如果 Ruby 无法连接到它,我有一段代码应该可以捕获我的 Redis 服务器抛出的错误。目前,代码如下所示:
begin
config.before(:all) { Resque.redis.select 1 }
config.after(:all) { Resque.redis.keys("queue:*").each { |key| Resque.redis.del key } }
rescue Exception
puts "RESCUED REDIS ERROR"
end
根据我尝试运行测试时的堆栈跟踪,该代码片段的第二行 - config.before(:all) {...} - 抛出Redis::CannotConnectError。经过大量“e.class.superclass.superclass ...”命令后,我确定此错误继承自StandardError。
之后我就卡住了。我尝试用“rescue Redis::CannotConnectError”捕捉错误,然后是“rescue”,最后是“rescue Exception”,但仍然抛出错误。但是,我在Ruby命令提示符下尝试了同样的事情,并且每次都捕获到异常
谁能帮我弄清楚这里发生了什么?谢谢!