PHP异常Exception $e->getTrace()

实例一:

<?php
function test() {
 throw new Exception;
}

try {
 test();
} catch(Exception $e) {
 var_dump($e->getTrace());
}
?>

它的输出是:
图片描述

实例二:

<?php
try{
    throw new Exception;
}catch(Exception $e){
    var_dump($e->getTrace());
}
?>

为什么这个实例输出的是一个一维空数组?

阅读 3.6k
1 个回答

因为getTrace()返回的是函数调用堆栈,实例二没有函数调用,所以返回空数组。

不嫌麻烦的话,可以用php-stacktrace查看函数调用堆栈。试过了,php-stacktrace在catch里是看不到test()的,产生异常的时候就记录了堆栈,然后就unwind 了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题