【PHP8.x】getTraceメソッドの使い方

getTraceメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

getTraceメソッドは、例外がスローされた時点までのプログラムの実行経路、すなわちバックトレース(関数の呼び出し履歴)を取得する処理を実行するメソッドです。JsonExceptionクラスは、PHPの基本的な例外クラスであるExceptionを継承しているため、このメソッドを利用することができます。このメソッドが返す値は配列であり、配列の各要素が、例外発生地点に至るまでの一つ一つの関数呼び出しを表す連想配列になっています。それぞれの連想配列には、呼び出し元のファイル名を示す 'file' キー、行番号を示す 'line' キー、そして呼び出された関数名やメソッド名を示す 'function' キーなどが含まれています。例えば、json_decode関数でエラーが発生してJsonExceptionがスローされた場合、getTraceメソッドを使用することで、どのファイルのどの行でjson_decodeが呼び出され、さらにその呼び出しに至るまでにどのような関数を経由したのかを詳細に追跡することが可能です。この情報は、エラーの原因を特定し、プログラムを修正するデバッグ作業において極めて重要な役割を果たします。

構文(syntax)

1<?php
2$invalidJson = '{"key": "value",}';
3
4try {
5    json_decode($invalidJson, flags: JSON_THROW_ON_ERROR);
6} catch (JsonException $e) {
7    $trace = $e->getTrace();
8    print_r($trace);
9}
10?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

array

このメソッドは、例外発生時のコールスタック(処理の履歴)を配列形式で返します。

関連コンテンツ