【问题标题】:How to get original exception from ActionView::Template::Error如何从 ActionView::Template::Error 获取原始异常
【发布时间】:2021-05-08 05:45:20
【问题描述】:
如果模板引发ActiveRecord::RecordNotFound异常,则原来的异常会被ActionView吞并变成ActionView::Template::Error。
似乎在 Rails 5 中有一个 original_exception 方法,但在 Rails 6 中似乎没有了。
我希望能够检查 ActionView::Template::Error 的原因,以便更好地显示上下文错误。
有什么办法吗?
【问题讨论】:
标签:
ruby-on-rails
ruby
actionview
【解决方案1】:
如果你捕捉到ActionView::Template::Error,应该有一个#cause 方法定义在它上面,它返回原始异常。示例:
begin
begin
raise ArgumentError
rescue
raise RuntimeError
end
rescue => e
puts "#{ e } caused by #{ e.cause }"
end
打印
RuntimeError caused by ArgumentError