Ruby:引发自定义命名空间异常以错误结束

标签 ruby class exception namespaces

以下代码:

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/

相关文章:

exception - 流畅的 Cassandra : What does "Apache.Cassandra.UnavailableException" mean?

Azure 应用程序洞察 | KQL|获取异常详细信息

ruby - 如何使 Ruby 方法传递输出参数(更改引用参数的值)?

用于 GUI 开发的 Java IDE

java - 创建一个方法来检查不同的对象,如果 null 抛出异常

C++ Ifstream 转换为类对象数组

python - 使用类和函数在命令行中调试 Python

python - 是否可以在不创建本地端口的情况下在 Ruby 或 Python 中创建 SSH 隧道?

ruby-on-rails - Neo4j.rb : as_json how to ignore root?

ruby-on-rails - 使用 Ruby 问题创建类方法