例外処理

例外処理とは、予期しない結果が発生した場合に強制的に別の処理をすることで、たとえばデータベースに接続できない、数値計算でゼロ除算した、ユーザーの入力値が不正の場合など、正常で無い事が起きた場合にそれを復旧する処理のことです。使用するメリットとしては、エラーの対処が簡単になります。

・tryブロック、throw文、catchブロック
「例外処理」は、エラーが起こりそうな個所を「try」して、トライ中にエラーが発生したら「例外」を「throw(投げる)」してトライを中断し、投げられた「例外」を「catch」して「エラー時用処理」を実行する、というものです。
例外が発生しなければ、catchブロックの処理は行われません。
catchブロック内では例外クラス(Exceptionクラス)に例外のオブジェクトが格納されており、ExceptionクラスのgetMessageメソッドを呼び出してエラーメッセージを表示します。

書き方例
           <?php
                try {
                    $iNum1 = 1;
                    $iNum2 = 0;

                    if ($iNum2 == 0) {
                        throw new Exception("0で割れないよ。");
                    }
                    $ans = $iNum1 / $iNum2;
                    echo $iNum1.'/'.$iNum2.'='.$ans;
                } catch (Exception $e) {
                    echo $e->getMessage();
                }

            ?>
        

1. 例外が発生する可能性のある処理を囲む(tryブロック)
2. 例外を発生させる(throw new Exception)
3. 例外発生時に行う処理を囲む(catchブロック)
例外クラスのドキュメントです

SQLの例外処理

PDOを利用したDB接続時にはPDOExceptionクラスを使用します。
PDOExceptionは、接続に失敗した場合などに投げられる例外です。PDOException自体は接続/切断以外にもいろいろな場所から投げられるので、開発者は適切な例外処理を記述しやすくなります。

           <?php
                try {
                    $db = new PDO('mysql:host=localhost;dbname=sql_ex;charset=sjis', 'root', 'admin');
                } catch (PDOException $e) {
                    exit('データベースに接続できませんでした。' . $e->getMessage());
                }
            ?>