以下代码:
module MyServerAPI
class BaseException < Exception
end
class Base
protected
def self.msa_get(url)
#................
raise BaseException "HTTP request error: #{ex.message}\n"
#................
end
end
class Function < Base
def self.list
#................
res = msa_get('functions')
#................
res
end
end
end
result = MyServerAPI::Function.list
执行时出错:
undefined method `BaseException' for MyServerAPI::Function:Class
如何从同一命名空间中引发自定义命名空间异常?
答案 0 :(得分:3)
你忘记了一个逗号:
raise BaseException, "HTTP request error: #{ex.message}\n"
没有逗号,代码转换为:
raise(BaseException("HTTP request error: #{ex.message}\n"))
因此解释器会搜索名为BaseException
...
答案 1 :(得分:1)
我想它应该是
raise BaseException.new("HTTP request error: #{ex.message}\n")