ruby-on-rails - Rails 中如何抑制回溯?

标签 ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2

使用 raisefail 退出 Rails 应用时,如何防止显示回溯?

尝试使用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 方法捕获所有错误,将回溯设置为空数组,并重新引发修改后的异常。

关于ruby-on-rails - Rails 中如何抑制回溯?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16304905/

相关文章:

ruby-on-rails - 向前传递所有参数?

ruby-on-rails - Errno::ETXTBSY: 文本文件繁忙 @ unlink_internal

ruby-on-rails - 延迟作业在 Ruby on Rails 中完成后如何进行 ajax 回调?

ruby-on-rails - Ruby:创建日期范围

ruby-on-rails - Rails 控制台无法在 Digital Ocean 上与 Dokku 一起使用

mysql - 共享主机 Mysql 更新后 Rails 3.2.13 应用程序失败

ruby-on-rails-3 - Rails nginx 目录索引被禁止

ruby - Elasticsearch 字段提升未显示在映射中

ruby - 获取 block 参数个数

javascript - 使用 RoR Assets 管道将样式表添加到 Javascript