函数名称:Exception::getTrace()
适用版本:所有 PHP 版本
用法:Exception::getTrace() 方法用于获取当前异常的堆栈跟踪信息。它返回一个由堆栈帧组成的数组,每个堆栈帧都是一个关联数组,包含以下键值对:
- file:包含堆栈帧所在的文件名。
- line:包含堆栈帧所在的行号。
- function:包含堆栈帧所调用的函数或方法名。
- class:如果堆栈帧是在类内部调用的,这个键将包含调用该方法的类名。
- type:如果堆栈帧是在类内部调用的,这个键将为
->
,表示对象方法调用;如果是静态方法调用,键将为::
。 - args:包含传递给函数或方法的参数数组。
示例:
try {
// 假设发生了一个异常
throw new Exception('Something went wrong');
} catch (Exception $e) {
// 获取堆栈跟踪信息
$trace = $e->getTrace();
// 遍历堆栈跟踪信息并打印每个堆栈帧的信息
foreach ($trace as $frame) {
$file = $frame['file'];
$line = $frame['line'];
$function = isset($frame['function']) ? $frame['function'] : '';
$class = isset($frame['class']) ? $frame['class'] : '';
$type = isset($frame['type']) ? $frame['type'] : '';
$args = isset($frame['args']) ? $frame['args'] : [];
echo "File: $file<br>";
echo "Line: $line<br>";
echo "Function: $function<br>";
echo "Class: $class<br>";
echo "Type: $type<br>";
echo "Args: " . implode(', ', $args) . "<br><br>";
}
}
注意:Exception::getTrace() 方法必须在异常被 catch 后调用,才能获取到有关该异常的堆栈跟踪信息。