【初心者向け】php言語のExceptionを使った例外処理

こんにちは、

最近シュレッダーを購入して快適な生活を送っているサトウです。
さて、本題に入りたいと思います。

phpの学習を進めると「exception」や「例外処理」という言葉を聞いたことがある方も多いのではないでしょうか。名前は聞いたことがあっても「exception」について理解できない方も少なくないのでは、、、。と思い、今回は「exception」について分かりやすく説明していきます。

phpを学び始めた方や、「exception」 について分からない方は、是非読んでみてくださいね。

Exceptionとは

例外処理とは

プログラムの実行中に発生するエラーを「例外」といいます。プログラム実行中に発生する「例外」に対して、適切に処理をしなければなりません。これを「例外処理」と言います。例外処理を適切に書くにはプログラマーがプログラム実行中に発生するエラーをしっかりと想定するしておく必要があります。例外処理を書くケースはいくつもありますが、以下のような場合に例外処理を記述するケースが多いです。

・データベースに接続できない
・ファイルを取得できない
・ユーザが入力した郵便番号が存在しない
・「0」で除算してしまった 等

phpではこのような例外処理はExceptionクラスで扱うことができます。
Exceptionクラスでは例外の内容を表すエラーメッセージやエラーコード等の情報を持っています。

例外処理の書き方

例外処理を書くには、以下のようにtry-catch構文で記述します。

try{
例外が発生する可能性がある処理
}catch(例外クラスの変数){
例外が発生した場合に行う処理
}

例外処理を書いてデータベースに接続してみよう!

ここからは実際の例外処理を書いてみましょう。
サンプルとして、フォーム入力した文字列がデータベースに登録される機能を用意しました。
こちらで例外処理の部分をメインに解説していきます。

完成後イメージ

サンプルコード(全体)

例外処理のコードは以下の部分です。

サンプルコード(try-catch該当部分)

try-catchで該当部分を囲んでいます。
データベースに接続できればそのまま文字列を登録し、データベースに接続できなければエラーメッセージを返す処理を書いています。

ここで例外処理でエラーを発生させたいと思います。
今回は「データベースに接続できなかった」場合を想定し、テーブル名を以下のように変更して例外を投げてみます。

正しいテーブル名:mysql_test
修正後のテーブル名:mysql_test1

コード

この状態で再度、「送信する」ボタンを押下してみます。

実行結果

例外処理のエラーが実行され、エラーメッセージが表示されましたね。
エラーログを確認してみると以下のように表示されています。

エラーログ画像

エラー発生:SQLSTATE[HY000] [1049] Unknown database ‘mysql_test1’

‘mysql_test1’といったテーブルはないよ、というエラーが表示されています。該当のテーブル名がないので、データベースに接続できなかったという例外処理が実行されています。このようにプログラム実行時(本番環境の運用後等)にエラー内容を想定して例外処理内容を書いていくのが非常に重要になります。是非アプリケーション開発時等に参考にしてみてください。

まとめ

いかがでしたか?今回は、exceptionの例外処理について解説しました。

自作で例外処理を書いてプログラミングをするのは、ややこしく感じることあると思います。ですが量をこなしていくと簡単に使えることができる日が来ると思うので、焦らずにゆっくりと理解を深めていってくださいね

この記事が、phpの学習に役立つと嬉しいです。

BLOGコンテンツをパーソナライズします

あなたは現在「プログラミング学習者」ですか?