问题描述
现在有一个测试代码:def study_ruby_exception arg_1beginputs 10/arg_1rescue Exception => eputs e.messageendendstudy_ruby_exception 0当我运行的时候会打印输出:pided by 0 除数为零异常我想得到这个异常的所有堆栈消息。例如:接防执行这个代码的时候是怎么的调用关系。错在哪个文件的哪 个方法里面等!我应该怎么输出呢?
问题解答
回答1:Exception 类有一个 backtrace 方法会返回一个包含堆栈的 array ...
参考代码 ...
def study_ruby_exception arg_1 beginputs 10/arg_1 rescue Exception => eputs e.backtrace endendstudy_ruby_exception 0
顺便多说两句 ... rescue 其实不一定要和 begin 一起出现 ...
你的那个例子其实可以写成这样 ...
def study_ruby_exception arg_1 puts 10/arg_1rescue Exception => e puts e.backtraceendstudy_ruby_exception 0