查詢

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函式
分享連結