backtrace
error.backtrace
可以看出是在哪裡報錯
如果 rescue 後再 raise 還可以看出是上一個 error 是什麼
def fail_and_reraise
raise NoMethodError
rescue
raise RuntimeError
end
begin
fail_and_reraise
rescue => e
puts "#{ e } caused by #{ e.cause }"
end”
Excerpt From: Starr Horne. “Mastering Ruby Exceptions.” iBooks.
TracePoint
可以做成 log 系統的好東西,自動 catch 每個 error 並記錄
http://ruby-doc.org/core-2.2.0/TracePoint.html
沒有留言:
張貼留言