在下面,通过['a', nil, 'c']
迭代将在nil
失败,因为你不能做nil + 'd'
。我想挽救那条消息,修改它,并将它传递给另一个存储错误的方法。如何修改救援条款中的异常消息?
number = 0
begin
['a', nil, 'c'].each_with_index do |entry, i|
entry + 'd'
number = i
end
rescue => e
e.message="#{e.message} (happened at entry: #{number})"
store_exception(e)
end
问题是,方法message=
不存在。我该怎么做?
这里唯一的问题是它也改变了异常的类。 – BroiSatse 2014-11-04 13:12:49
@BroiSatse做的OP想要原始的Exception类吗? – fl00r 2014-11-04 13:15:40
@ fl004 - 这个问题没有说明。然而,由于想要修改异常消息而不是仅仅记录修改后的版本,它会提示store_exception方法在出现异常时更加复杂。使用ProxyException也会修改回溯。 – BroiSatse 2014-11-04 13:24:15