![](/img/trans.png)
[英]How ActiveRecord::Rollback behaves in nested begin-rescue blocks
[英]Catch all exceptions without begin-rescue
我試圖找到一種理想的方式來捕獲所有異常,以格式化回溯輸出。
我應該提到的目的是擁有一個簡單的gem,它只是required
並提供易於閱讀的backtrace。 因此, begin
... rescue
不是一種選擇。
到目前為止,我發現有兩種方法可以解決此問題,每種方法都有其自身的問題:
像我在這里一樣使用TracePoint
。
TracePoint
方法給我的靈活性比所需的要少,並且使用at_exit
方法時,我覺得我正在濫用此方法,尤其是因為我還必須使用exit!
以防止打印原始回溯。
因此,我的問題是:
at_exit
除了使用exit!
之外,還有一種方法可以防止顯示任何回溯exit!
? 參考代碼:
at_exit do
if $! and $!.class != SystemExit
show_errors $!
exit! 1
end
end
pretty_debug
gem中做到這pretty_debug
。 是。 正如我在上面的鏈接中所做的那樣,請執行以下操作:
$stderr.reopen(IO::NULL) $stdout.reopen(IO::NULL)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.