我试图在Ruby的外部类中创建一个内部类的实例,方法如下,
myclass.rb
require 'mylibs'
class myClass
class ClientNotInitializedError < StandardError
end
def myMethod
if not @client raise ClientNotInitializedError.new
#do stuff
end
end
然而,在我试图抛出异常的构建中失败了。我究竟做错了什么?
我尝试了self.ClientNotInitializedError.new
和self::ClientNotInitializedError.new
之类的东西,但仍然没有运气。
ClientNotInitializedError
非常特定于此类,因此我希望将其保留在类中或至少保存在同一个文件中。
答案 0 :(得分:1)
我试图运行你的代码并犯了几个错误:
a)类名必须始终以大写字母开头(否则您将收到错误:类/模块名称必须为CONSTANT(SyntaxError))
b)你的if语句中没有关闭结束块,你提出错误。这应该有效:
class MyClass
class ClientNotInitializedError < StandardError; end
def my_method
raise ClientNotInitializedError.new unless @client
#do stuff
end
end
MyClass.new.my_method #=> will raise the appropriate error