用于显示错误的模式

时间:2011-05-05 06:30:49

标签: ruby

在我的代码中,我通常使用以下设置:

module MyLib
  VERSION = "0.1.1"
  ERROR = [
    "You can either give one arg and a block or two args, not both.",
    "Yadda yadda..."
  ]
end

然后在我的代码中的某处:

def my_method(*args, &blk)
  raise(ArgumentError, MyLib::ERROR[0]) if (...condition snipped...)
end

有更好的方法来定义错误消息吗?

1 个答案:

答案 0 :(得分:7)

您可以定义自己的异常类:

module MyLib
  class FooError < ArgumentError
    def to_s
      "You can either give one arg and a block or two args, not both.",
    end
  end
end

现在如果你举起它:

raise MyLib::FooError
MyLib::FooError: You can either give one arg and a block or two args, not both.
    from (irb):46

如果你想处理它:

rescue MyLib::FooError