1
我正试图找到理想的方式来捕获所有异常,以便格式化回溯输出。捕获所有异常,无需开始救援
我应该提一下,其目的是要有一个简单的宝石,可以只是required
,并提供更容易阅读的回溯。所以begin
... rescue
不是一个选项。
到目前为止,我已经找到了两种方法来做到这一点,每一个都有自己的问题:
使用
TracePoint
,就像我did here。
的TracePoint
方法给了我比需要更少的灵活性,并与at_exit
方法,我觉得我滥用这种方法,尤其是因为我还必须使用exit!
防止印刷原回溯。
所以,我的问题是:
- 难道还有比上面提到的两个更好的办法?
- 与
at_exit
- 有没有办法阻止任何回溯显示,除了使用exit!
?
参考代码:
at_exit do
if $! and $!.class != SystemExit
show_errors $!
exit! 1
end
end
有趣。 “重新打开”是做什么的?我知道这是为了防止原始错误显示,不知道我得到它为什么会产生这个结果。 (会尝试你的宝石)。 – DannyB
没关系,明白了:) – DannyB