如何抑制回溯在Rails的?(How to suppress backtrace in Rails?

2019-10-18 02:42发布

当退出使用Rails应用程序raisefail ,如何避免显示回溯?

尝试使用back_trace_limit但似乎只为控制台工作...?

Answer 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方法捕获所有错误,设置回溯为空数组,并重新引发改性异常。



文章来源: How to suppress backtrace in Rails?