如何解决如何从 ActionView::Template::Error 获取原始异常
如果模板导致引发 ActiveRecord::RecordNotFound
异常,则原始异常会被 ActionView 吞噬并变成 ActionView::Template::Error
。
似乎在 Rails 5 中有一个 original_exception 方法,但在 Rails 6 中似乎没有了。
我希望能够检查 ActionView::Template::Error
的原因,以便更好地显示上下文错误。
有什么办法吗?
解决方法
如果捕获 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。