在我的代码中,我通常使用以下设置:
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
有更好的方法来定义错误消息吗?
答案 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