1
我想改善嵌套異常的回溯。目前,我有這樣的:追溯嵌套異常
def upsert(doc)
get(doc.id) ? update(doc) : insert(doc)
rescue => ex
raise RepositoryError, "#{ex.class}: #{ex.message}"
end
在我UPSERT方法我想換任何異常到一個通用的一個。該解決方案的工作,但有一個惱人的副作用:對實際問題的回溯丟失(獲救除外)
我可能會進一步解決這個問題用一個從內部異常替換回溯:
raise RepositoryError, "#{ex.class}: #{ex.message}", ex.backtrace
這顯示了具有真正問題的回溯,但排除了生產線RepositoryError。我可能會使用__FILE__:__LINE__
來擴展ex.backtrace
,但插入並不重要,因爲我必須在回溯內找到正確的位置。
因爲這似乎是一個基本的共同需求:有沒有一種更簡單的方法來實現我想要做的一切?