鍍金池/ 問(wèn)答/PHP/ PHP異常Exception $e->getTrace()

PHP異常Exception $e->getTrace()

實(shí)例一:

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

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

它的輸出是:
圖片描述

實(shí)例二:

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

為什么這個(gè)實(shí)例輸出的是一個(gè)一維空數(shù)組?

回答
編輯回答
話寡

因?yàn)?code>getTrace()返回的是函數(shù)調(diào)用堆棧,實(shí)例二沒(méi)有函數(shù)調(diào)用,所以返回空數(shù)組。

不嫌麻煩的話,可以用php-stacktrace查看函數(shù)調(diào)用堆棧。試過(guò)了,php-stacktrace在catch里是看不到test()的,產(chǎn)生異常的時(shí)候就記錄了堆棧,然后就unwind 了。

2018年6月2日 01:31