我想用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
筹集了此消息:
未定义的方法`for'for'foo':string(nomethoderror(
我不知道为什么我的自定义异常课程没有处理。
您拯救CustomError
,但正在提高NoMethodError
。NoMethodError
继承StandardError
,这就是为什么可以用rescue StandardError
进行营救的原因。