【try/catch/Exception】PHPの例外処理【現役SEが解説】

PROGRAM

今回は、PHPの例外処理について、try~catch文による例外(Exception)の捕捉の仕方と例外を投げる方法に分け、簡単に解説していきます。

例外の捕捉の仕方

PHPで例外を捕捉するためには、try~catch文を使う必要があります。

具体的には、tryの中にエラーが発生しうる処理を、catchの中にエラーが発生した場合の処理を書きます。

try {
    // エラーが発生しうる処理を書く
} catch (Exception $e) {
    echo $e->getMessage();
}

上記のコードでは、tryの中でエラーが発生しうる処理を書き、catchの中ではエラーが発生した場合に、捕捉したエラーのメッセージを出力するサンプルコードとなっています。

例外を投げる方法

デバッグや分岐処理等で故意に例外を投げたい場合があると思います。

そのような場合には、throw文を使えばException(例外)を自ら作り出すことができます。

try {
    throw new Exception("故意のエラー発生");
} catch (Exception $e) {
    echo $e->getMessage();
}

上記のコードでは、tryの中で”故意のエラー発生”というメッセージを持つ例外を投げ、catchの中でそのメッセージを出力しています。

例外不問の後処理

PHPのバージョンが古くなければ、例外不問の後処理を実装することができます。

finally文を使えば、try内終了時もしくはcatch内終了時に共通の後処理を行えます。

try {
    // エラーが発生しうる処理を書く
} catch (Exception $e) {
    echo $e->getMessage();
} finally {
    // 例外発生不問の後処理を書く
}

上記のコードのように、finally文に例外発生不問の後処理を書くことで、エラーの発生の有無に関係なく、後処理を実行することができます。