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

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

作成日: 更新日:

基本的な使い方

getCodeメソッドは、プログラムの実行中に発生した例外(Exception)オブジェクトに割り当てられたエラーコードを取得するメソッドです。

プログラムが予期せぬ問題に直面した際に、その状況を伝えるために「例外」が投げられます。この例外には、問題の種類を具体的に識別するための数値、つまりエラーコードを設定することができます。getCodeメソッドは、この設定されたエラーコードを整数型(int)の値として取得することを目的としています。

このメソッドは引数を取りません。例外が発生し、それがtry-catchブロックによって捕捉された場合、捕獲されたExceptionオブジェクトに対してgetCode()を呼び出すことで、どの種類のエラーが発生したのかを数値で判別できます。たとえば、データベースへの接続失敗を表すコード「1001」や、ファイルが見つからないことを示すコード「2002」など、開発者が定義した特定のコードに基づいて、エラーの種類ごとに異なる処理を実行することが可能になります。

このように取得したエラーコードを利用することで、システムはエラーの原因をより詳細に特定し、ユーザーに対して適切なメッセージを表示したり、ログファイルに詳細な情報を記録したりするなど、エラーへの対応を柔軟かつ効率的に行うことができます。PHPの組み込み例外や開発者が独自に定義するカスタム例外のどちらにおいても、エラーコード取得の標準的な手段として広く利用されています。

構文(syntax)

1<?php
2$exception = new Exception("エラーメッセージ", 1001);
3$errorCode = $exception->getCode();
4?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

int

このメソッドは、発生した例外のエラーコードを整数型(int)で返します。

サンプルコード

PHP ExceptionのgetCode()で例外コードを取得する

1<?php
2
3/**
4 * この関数はPHPのExceptionクラスのgetCode()メソッドの使用例を示します。
5 * 例外を意図的に発生させ、その例外コードを捕捉して表示します。
6 */
7function demonstrateExceptionCode(): void
8{
9    try {
10        // 新しいExceptionオブジェクトをスローします。
11        // 第2引数として、この例外に紐付ける数値コード(ここでは 1001)を指定します。
12        throw new Exception("ファイルが見つかりませんでした。", 1001);
13
14    } catch (Exception $e) {
15        // 例外が捕捉された場合、Exceptionオブジェクトから情報を取得します。
16
17        echo "捕捉された例外情報:" . PHP_EOL;
18        echo "-------------------" . PHP_EOL;
19
20        // getMessage() メソッドで例外のメッセージを取得します。
21        echo "メッセージ: " . $e->getMessage() . PHP_EOL;
22
23        // getCode() メソッドで例外に設定された数値コードを取得します。
24        // これはリファレンス情報で示されている getCode メソッドです。
25        echo "コード: " . $e->getCode() . PHP_EOL;
26
27        // 例外が発生したファイル名と行番号も取得できます。
28        echo "ファイル: " . $e->getFile() . PHP_EOL;
29        echo "行: " . $e->getLine() . PHP_EOL;
30    }
31}
32
33// 関数を実行して、例外処理の動作を確認します。
34demonstrateExceptionCode();
35
36?>

PHP 8のException::getCode()メソッドは、プログラム実行中に発生した例外に関する数値コードを取得するために使用されます。このメソッドはExceptionクラスに属し、例外が発生した際にその種類や原因を識別するための特定の整数値を返します。引数はなく、常に整数型(int)の値を戻り値として返します。

サンプルコードでは、demonstrateExceptionCode関数内で意図的にExceptionをスローしています。throw new Exception("ファイルが見つかりませんでした。", 1001);のように、Exceptionオブジェクトを生成する際に、第2引数として任意の数値コード(ここでは1001)を指定できます。この数値コードは、開発者が独自に定義し、様々なエラーの種類を区別するために利用されます。

try...catchブロックで例外が捕捉された際、catchブロック内の$e変数には発生したExceptionオブジェクトが格納されます。$e->getCode()を呼び出すことで、この例外オブジェクトに紐付けられた数値コード「1001」を取得し、画面に表示しています。これにより、どの種類の例外が発生したかをプログラム的に判断し、それに応じた適切なエラー処理を実行することが可能になります。getMessage()で例外メッセージを、getFile()getLine()で発生箇所を取得できることも、例外処理における重要な側面です。

getCode()メソッドは、例外発生時にプログラムで設定された数値コードを返します。このコードは、エラーの種類を識別し、try-catchブロック内で例外に応じた具体的な処理を分岐させる際に役立ちます。例えば、ファイル操作のエラーには1001、データベース接続のエラーには2001のように、開発者が意味のある数値を割り当てて利用します。コードを指定せずに例外をスローした場合、getCode()はデフォルトで0を返しますのでご注意ください。getMessage()が人間向けのメッセージであるのに対し、getCode()はプログラムによる処理を意図した数値情報である点を理解することが重要です。

関連コンテンツ