ruby - 救援 block 未捕获异常

标签 ruby exception redis rescue

问题与 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/

相关文章:

javascript - 从 Laravel 外部推送到 Laravel 队列(NodeJS)

多种方法期间的 Ruby 救援异常

ruby - 如果我安装了 jRuby on Rails,我可以只使用 Ruby 吗?

c# - 如何在 ASP.NET Core 应用程序中获取 Soap 故障详细信息元素

node.js - 尽管绑定(bind)了 ip,但在本地网络中无法访问 MongoDB 服务器

go - 如何在 redisearch-go (Golang) 中向 redigo 客户端提供密码

ruby - jekyll - 插件支持 - 它是如何工作的?

Ruby Activerecord IN 子句

java - 如何在 Graphics 中成功使用 Thread.sleep() 方法?

wpf - 在 'System.Windows.Data.Binding' 上提供值引发异常