我想用 Ruby 2.3 和 2.4 中的自定义类来拯救一些代码。但与以前的版本不同(例如运行良好的 2.2),我遇到了一些麻烦。这里有一个例子:
给定这个类:
class CustomError < StandardError
end
此代码被成功抢救:
begin
'foo'.bar(:boom)
rescue
puts 'THIS IS FINE.'
end
# => printing "THIS IS FINE." on the screen
这个也成功救了:
begin
'foo'.bar(:boom)
rescue StandardError
puts 'THIS IS FINE.'
end
# => printing "THIS IS FINE." on the screen
但不是这个:
begin
'foo'.bar(:boom)
rescue CustomError
puts 'THIS IS FINE.'
end
引发此消息:
“foo”的未定义方法“bar”:字符串(NoMethodError)
我不知道为什么我的自定义异常类没有被处理。