问题与radis-rb
宝石有关。
我的救援块没有捕获到异常,并且我的应用程序出现故障。
我的代码:
begin
redis = Redis.new
puts "WTF?"
rescue Exception
puts "Exception"
end
如果redis
是down,消息WTF?被暴露。
无论有没有 Exception 语句,都会发生这种情况。
为什么我的救援块没有引发异常?
我自己解决了这个问题(在社区和评论的帮助下)。
该异常仅发生在 IRB 中。
一个原因是inspect
IRB 尝试打印结果时 IRB 的调用Redis.new
。
在脚本(不是 IRB)中,不会发生异常,因为如果服务关闭Redis.new
,不会引发异常。Redis
这个问题有助于解决我的问题。