有时,我们使用的库很好地调试,通常不会导致错误。不过,由于我们滥用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