我似乎找不到太多关于自定义异常类的信息。
我只知道
您可以声明您的自定义错误类并让它从 StandardError
继承,因此它可以是 rescue
d:
class MyCustomError < StandardError
end
这样你就可以使用:
raise MyCustomError, "A message"
之后,在营救的时候得到这个信息
rescue MyCustomError => e
puts e.message # => "A message"
我不知道的是
我想为异常提供一些自定义字段,但是我想从父类继承 message
属性。我在阅读 关于这个话题时发现,@message
不是异常类的实例变量,所以我担心我的继承不会起作用。
有人能告诉我更多细节吗?如何实现具有 object
属性的自定义错误类?以下内容是否正确:
class MyCustomError < StandardError
attr_reader :object
def initialize(message, object)
super(message)
@object = object
end
end
然后:
raise MyCustomError.new(anObject), "A message"
获得:
rescue MyCustomError => e
puts e.message # => "A message"
puts e.object # => anObject
它会起作用吗? 如果起作用了,这是正确的做事方式吗?