PHPの例外処理(Exception)とは?try-catchで安全なコードを書く方法
PHPでは、例外処理(Exception Handling)を使うことで、エラーが発生したときにプログラムを強制終了せず、柔軟に対応することができます。
try-catch
構文を使って、エラーを「例外」として投げて(throw)、キャッチして処理します。
基本構文
try {
// エラーが起きる可能性のある処理
throw new Exception("エラーが発生しました");
} catch (Exception $e) {
// エラー処理
echo "例外メッセージ:" . $e->getMessage();
}
例:数値の割り算チェック
function divide($a, $b) {
if ($b === 0) {
throw new Exception("0で割ることはできません");
}
return $a / $b;
}
try {
echo divide(10, 0);
} catch (Exception $e) {
echo "エラー:" . $e->getMessage();
}
上記のように、throw
で例外を発生させ、catch
で安全に処理できます。
Exceptionクラスの主なメソッド
getMessage()
:例外メッセージを取得
getCode()
:例外コードを取得
getFile()
:例外が発生したファイル
getLine()
:例外が発生した行
getTrace()
:スタックトレース(配列)
複数のcatchブロック
PHP7以降では、複数の例外クラスを個別にキャッチできます。
try {
// 処理
} catch (InvalidArgumentException $e) {
echo "引数エラー:" . $e->getMessage();
} catch (Exception $e) {
echo "その他のエラー:" . $e->getMessage();
}
独自の例外クラスを作る
class MyException extends Exception {}
try {
throw new MyException("カスタム例外発生!");
} catch (MyException $e) {
echo "MyException:" . $e->getMessage();
}
finallyブロック
finally
ブロックを使うと、例外の有無にかかわらず最後に必ず実行される処理を書けます。
try {
echo "処理中";
} catch (Exception $e) {
echo "エラー:" . $e->getMessage();
} finally {
echo "終了処理を実行";
}
まとめ
try-catch
を使って例外処理ができる
throw new Exception()
で例外を発生させる
- 例外オブジェクトには詳細な情報が含まれる
- 独自の例外クラスを定義して管理も可能
finally
ブロックで後処理も行える
例外処理は、安定したPHPアプリケーションを作るために欠かせない技術です。
予期しないエラーにも柔軟に対応できるよう、しっかり習得しておきましょう。