【问题标题】: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
    

    【讨论】:

    • 太棒了,谢谢。非常适合我。
    猜你喜欢
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    相关资源
    最近更新 更多