Ruby::自定义异常类中的NoMethodError
我有一个自定义异常类,如下所示:Ruby::自定义异常类中的NoMethodError,ruby,ruby-on-rails-3,Ruby,Ruby On Rails 3,我有一个自定义异常类,如下所示: module ABC class XYZ < Exception end end 我得到以下例外情况: NoMethodError: undefined method `XYZ' for ABC:Module 您需要引发一个ABC::XYZ 现在,Ruby解释器假定您正在尝试执行一个方法 raise ABC::XYZ.new("My Msg") if something != onething 你可以这样做: if something !=
module ABC
class XYZ < Exception
end
end
我得到以下例外情况:
NoMethodError: undefined method `XYZ' for ABC:Module
您需要引发一个
ABC::XYZ
现在,Ruby解释器假定您正在尝试执行一个方法
raise ABC::XYZ.new("My Msg") if something != onething
你可以这样做:
if something != onething
raise ABC::XYZ, "My Msg"
end
未经测试:
或者你可以这样做,我想:
raise ABC::XYZ, "My Msg" if something != onething
希望有帮助 您只是缺少一个逗号,该行应该是:
raise ABC::XYZ, "My Msg" if something != onething
目前,它被解析为对XYZ
的方法调用,参数为“My Msg”
,由于没有XYZ
方法,因此会产生错误
raise ABC::XYZ, "My Msg" if something != onething