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

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

作成日: 更新日:

基本的な使い方

getTraceメソッドは、例外が発生した時点でのバックトレースを取得するメソッドです。このメソッドは、BadMethodCallExceptionが継承している基底クラスのExceptionクラスで定義されており、PHPにおける全ての例外オブジェクトで使用することができます。バックトレースとは、プログラムの実行が例外の発生地点に至るまでの、関数の呼び出し履歴を記録したもので、「スタックトレース」とも呼ばれます。このメソッドを実行すると、各呼び出しステップの情報を含む多次元配列が返されます。配列の各要素には、処理が実行されたファイル名、行番号、呼び出されたクラス名やメソッド名、そしてその際に渡された引数などの詳細なデバッグ情報が格納されています。BadMethodCallExceptionは、存在しないメソッドを呼び出そうとした場合などにスローされるため、getTraceメソッドを用いることで、どのコードが誤ったメソッド呼び出しを行ったのかを正確に特定し、デバッグ作業を効率的に進めることが可能になります。

構文(syntax)

1<?php
2
3class MyClass
4{
5    // 'runProcess' というメソッドは定義されていません
6}
7
8try {
9    $object = new MyClass();
10    // 存在しないインスタンスメソッドを呼び出すと BadMethodCallException がスローされます
11    $object->runProcess();
12} catch (BadMethodCallException $e) {
13    // getTrace() メソッドは、例外発生までのコールスタックを配列で返します
14    $trace = $e->getTrace();
15    print_r($trace);
16}

引数(parameters)

引数なし

引数はありません

戻り値(return)

array

例外が発生した際の、実行時のコールスタック(関数呼び出し履歴)を配列形式で返します。