1

raiseまたはを使用してRailsアプリを終了するときfailに、バックトレースが表示されないようにする方法は?

使ってみback_trace_limitたけど、コンソールでしか使えないようです…?

4

1 に答える 1

1

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 メソッドは、すべてのエラーをキャッチし、バックトレースを空の配列に設定し、変更された例外を再発生させます。

于 2013-04-30T16:59:41.013 に答える