在下面,通過['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