向(自定义)例外添加信息
包含具有异常的附加信息可能会有所帮助,例如用于记录目的或在捕获异常时允许条件处理:
class CustomError < StandardError
attr_reader :safe_to_retry
def initialize(safe_to_retry = false, message = 'Something went wrong')
@safe_to_retry = safe_to_retry
super(message)
end
end
提出例外:
raise CustomError.new(true)
捕获异常并访问提供的其他信息:
begin
# do stuff
rescue CustomError => e
retry if e.safe_to_retry
end