实例一:
<?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());
}
?>
为什么这个实例输出的是一个一维空数组?
1 回答
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
因为getTrace()返回的是函数调用堆栈,实例二没有函数调用,所以返回空数组。
不嫌麻烦的话,可以用php-stacktrace查看函数调用堆栈。试过了,php-stacktrace在catch里是看不到test()的,产生异常的时候就记录了堆栈,然后就unwind 了。
- 1 回答
- 0 关注
- 693 浏览
添加回答
举报
0/150
提交
取消
