2025年4月28日 星期一 农历 下月5日立夏 English | 简体中文 | 繁體中文
查询

Exception::getTrace()函数—用法及示例

「 获取当前异常的堆栈跟踪信息 」


函数名称: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 后调用,才能获取到有关该异常的堆栈跟踪信息。

补充纠错
上一个函数: Exception::getLine()函数
下一个函数: Exception::__clone()函数
热门PHP函数