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