首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ruby自定义错误类:消息属性的继承

Ruby自定义错误类:消息属性的继承
EN

Stack Overflow用户
提问于 2013-04-19 22:11:14
回答 4查看 68.4K关注 0票数 98

我似乎找不到太多关于自定义异常类的信息。

我所知道的

您可以声明您的自定义error类,并让它从StandardError继承,因此它可以是rescued:

代码语言:javascript
复制
class MyCustomError < StandardError
end

这使您可以使用以下命令来引发它:

代码语言:javascript
复制
raise MyCustomError, "A message"

然后,在解救的时候得到这个信息

代码语言:javascript
复制
rescue MyCustomError => e
  puts e.message # => "A message"

我不知道什么

我想给我的异常提供一些自定义字段,但我想从父类继承message属性。我在读on this topic时发现@message不是exception类的实例变量,所以我担心我的继承无法工作。

有人能给我更多的细节吗?如何实现具有object属性的自定义error类?以下内容是否正确:

代码语言:javascript
复制
class MyCustomError < StandardError
  attr_reader :object
  def initialize(message, object)
    super(message)
    @object = object
  end
end

然后:

代码语言:javascript
复制
raise MyCustomError.new(anObject), "A message"

要获得以下信息:

代码语言:javascript
复制
rescue MyCustomError => e
  puts e.message # => "A message"
  puts e.object # => anObject

它会起作用吗?如果起作用,这是正确的做事方式吗?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16106645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档