有時,我們使用的庫很好地調試,通常不會導致錯誤。不過,由於我們濫用API,這些庫可能會返回錯誤。在這種情況下,這些庫內部的步驟顯示在錯誤的回溯中,從使用庫的程序員的角度來看,這只是一個垃圾,並且很難找出錯誤的原因。即使核心Ruby中的一些方法也會在回溯中插入一些內部步驟。例如,無論何時看到涉及Enumerable#inject
的回溯,始終都會調用Enumerable#each
,該回調顯示在回溯中並令人討厭。從回溯中切斷來自特定庫的步驟
什麼是從回溯中刪除某些給定庫內部步驟的好方法?我目前通過解析回溯並通過文件名來過濾它。有沒有更好的方法來做到這一點?
當你自己編寫一個庫時,是否有一種很好的方法來抑制出現在涉及使用庫的方法調用的回溯中的內部步驟?對於要從庫之外使用的每種方法,插入一對
rescue
和raise
是顯而易見的方法,但這看起來不正確。
'可枚舉#reject' FTW :) – 2013-02-18 11:43:44
貌似方面(我喜歡[水族館](https://github.com/deanwampler/Aquarium)爲Ruby)是你在找什麼。見e。 G。 [「包裝」例外](http://aquarium.rubyforge.org/examples.html)(向下滾動幾個屏幕。) – mudasobwa 2013-02-18 12:10:45