raiseまたはを使用してRailsアプリを終了するときfailに、バックトレースが表示されないようにする方法は?
使ってみback_trace_limitたけど、コンソールでしか使えないようです…?
raiseまたはを使用してRailsアプリを終了するときfailに、バックトレースが表示されないようにする方法は?
使ってみback_trace_limitたけど、コンソールでしか使えないようです…?
set_backtraceメソッドを使用して、例外インスタンスで返されるバックトレースを完全に制御できます。例えば:
def strip_backtrace
yield
rescue => err
err.set_backtrace([])
raise err
end
begin
strip_backtrace do
puts 'hello'
raise 'ERROR!'
end
rescue => err
puts "Error message: #{err.message}"
puts "Error backtrace: #{err.backtrace}"
end
出力:
hello
Error message: ERROR!
Error backtrace: []
ここでの strip_backtrace メソッドは、すべてのエラーをキャッチし、バックトレースを空の配列に設定し、変更された例外を再発生させます。