问题与 radis-rb
gem 有关。
异常没有被我的救援 block 捕捉到,我的应用程序崩溃了。
我的代码:
begin
redis = Redis.new
puts "WTF?"
rescue Exception
puts "Exception"
end
如果 redis
宕机,消息 WTF? 就会暴露。
不管有没有 Exception 语句都会发生。
为什么没有向我的救援 block 引发异常?
最佳答案
我自己解决了这个问题(在社区和评论的帮助下)。
异常仅发生在 IRB。
其中一个原因是当 IRB 尝试打印 Redis.new
的结果时,IRB 的 inspect
调用。
在脚本(不是 IRB)中,不会发生异常,因为如果 Redis
服务关闭,Redis.new
不会引发异常。
这question帮助解决了我的问题。
关于ruby - 救援 block 未捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10354698/