【PHP】例外(Exception) - プログラムのエラー

【PHP】例外(Exception) - プログラムのエラー

PHPには例外と呼ぶ仕組みがあります。

例外を使うことで、エラーを意図して発生することができます。

ここでは、例外について解説します。

検証環境

例外

プログラムのエラーには大きく分けて、プログラムで対応できない致命的なエラーとプログラムで対応できるエラーがあります。

一般的に後者の“プログラムで対応可能なエラー”を例外と呼びます。

PHPでは例外を意図的に発生させることが可能です。

また、致命的なエラーの代表例は『ハードウェアの故障』や『メモリ不足』などです。

Exception

PHPは例外を表すExceptionクラスを標準で用意しています。

このクラスを使って例外オブジェクトを生成することが可能です。

<?php

___ih_hl_start
$exception = new Exception('Exception Sample');
___ih_hl_end

echo $exception->getMessage();

?>
$ php sample.php
Exception Sample

3行目で例外オブジェクトを生成しています。

コンストラクタの第一引数には例外メッセージを与えられ、getMessageメソッドによって取得できます。

例外のスロー

例外のスローは“例外をプログラムで発生させること”です。

例外オブジェクトは生成のみでは、単なるオブジェクトとして扱われます。

そのため、実際にプログラムで例外を発生させるにはスローを行います。

基本構文

throw 例外オブジェクト

throwに続いて、例外オブジェクトを記述します。

サンプル

<?php

$exception = new Exception('Exception Sample');

___ih_hl_start
throw $exception;
___ih_hl_end

echo $exception->getMessage();

?>
$ php sample.php
PHP Fatal error:  Uncaught Exception: Exception Sample in sample.php:3
Stack trace:
#0 {main}
  thrown in sample.php on line 3

5行目が例外のスローです。

例外が発生するとプログラムの処理は中断されます。

そのため、7行目のコードは実行されません。