我有一个错误类别:
module Error
class Base < StandardError
def initialize
binding.pry
end
end
end
我从控制器提出了错误:
raise Error::Base
我想获取出现错误的类名或文件名。有什么办法吗?
backtrace
,cause
和backtrace_locations
返回nil
。
答案 0 :(得分:1)
在正在生成异常之前,您正在捕获异常,而实际上并未引发它-这就是为什么它没有完全填充的原因。
如果您确实需要在那里捕获执行,则可以像使用其他任何方法一样,使用caller
查看当前堆栈跟踪。除非提出该建议,否则您将不会从该异常中获得太多好处。