您可以创建一个异常的子类来使其更加描述性,但是您该如何设置默认的“message”?
class MyError < StandardError
# default message = "You've triggered a MyError"
end
begin
raise MyError, "A custom message"
rescue Exception => e
p e.message
end
begin
raise MyError
raise Exception => e
p e.message
end
第一个应该输出 "A custom message"
第二个应该输出 "You've triggered a MyError"
有没有关于最佳实践的建议?
super
。如果不带参数列表调用super
,它将简单地传递所有参数,这就是为什么当你真正想要传递 没有 参数时,必须显式调用super()
的原因。 - Jörg W MittagStandardError
?这背后有什么原因吗? - Arup RakshitStandardError
(或更低级别),因为更高级别的错误,如Exception
,甚至会在按下CTL-C等键时抛出。有关更多信息,请参见http://rails-bestpractices.com/posts/2012/11/01/don-t-rescue-exception-rescue-standarderror - Sean