以下代码:
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
如何从同一命名空间内引发我的自定义命名空间异常?
最佳答案
你忘记了逗号:
raise BaseException, "HTTP request error: #{ex.message}\n"
没有逗号,代码转换为:
raise(BaseException("HTTP request error: #{ex.message}\n"))
所以解释器搜索一个名为
BaseException
的方法...
关于Ruby:引发自定义命名空间异常以错误结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23738851/