【发布时间】:2014-02-27 21:23:21
【问题描述】:
我想要一个 Exception 对象的引用,其中包含所有正常信息 - 消息、回溯等。
异常有一个new 方法,但它不填充回溯:
exception = Exception.new("my message")
exception.backtrace
#=> nil
文档说有一个set_backtrace 方法,但您必须自己提供回溯(它不只是使用当前堆栈)。
我可以通过提升和救援来解决这个问题:
exception = begin
raise Exception, "my message"
rescue Exception => e
e
end
exception.backtrace
#=> ["(irb):4:in 'irb_binding'", ...]
但感觉不是很干净。
有没有一种简单的方法来创建一个完全填充的 Exception 对象?
【问题讨论】: