Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby::自定义异常类中的NoMethodError_Ruby_Ruby On Rails 3 - Fatal编程技术网

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