php

PHPの例外処理

プログラムを実行したときに、エラーが起きることがあります。
ユーザーフォームに入力したデータが無効な値であったり、
数値の入力をしなければならない箇所に、文字列を設定した時などです。

PHPでは、こうしたエラーを適切に処理するために、
例外(exception)というしくみを利用します。

エラーが発生したときに、このエラーに対応する処理を書きます。
このとき、例外を送出する処理をします。
送出された例外を受け取ったときにエラーを処理します。

try{
throw new 例外;
}
catch(例外のクラス 変数名){
例外発生時の処理;
}

サンプルコードの実行結果はこちら

例外処理を行うとき、例外が発生するであろう箇所にtryブロックで
囲みます。この中で例外を送出します。今回は、フォームの入力値が
何もなく、送信ボタンが押されたときに例外を送出します。

例外を送出するには、PHPに備え付けられているExceptionクラスの
オブジェクトを作成します。

例外が創出されて、そのクラスがcatchブロックの引数の型と同一で
あるならcatchブロックの処理が行われます。
今回は、ExceptionクラスのgetMessage()メソッドを実行して、
作成時に与えられたメッセージを表示します。

tryブロックで例外を検知して、catchブロックで受け止めて
処理をすることができます。

例外を拡張する

細かいエラー処理を行い時があります。そんなときは、
例外クラスExceptionを拡張し独自の例外クラスを定義する
というものがあります。例外クラスを作ることができれば、
色々な例外を起こすことができます、、

サンプルコードの実行結果はこちら

Exceptionクラスの派生クラスでは、__String()メソッド
オーバーライドすることができます。このメソッドは、echoやprint文で
オブジェクトを出力したときに呼び出されるメソッドです。

例外を拡張して送出することができる。

2つ以上のcatchブロックを設置してみる

上記のサンプルコードでは、2つの例外を定義しました。
定義した複数の例外に対して、異なる処理をすることができれば、
細かいエラー処理ができるようになります。例外の種類に
対応するcatchブロックは、、複数書くことができます。

サンプルコードの実行結果はこちら

上記のサンプルコードは、2つの例外に対して、それぞれcatchブロックを
書きました。例外の種類に応じたエラー処理ができます。

エラー制御演算子

PHPはウェブページを作成して外部の人に見せることを想定しています。
そのとき、エラー情報が出力されると、サーバー側の重要な情報が
知られてしまう危険性というものがあります。その事態を避けるために、
PHPにはエラーを制御する演算子「@」があり、エラー制御を行うには、、
式の先頭に「@」を付けます。

$fp = @fopen( $_POST["title"],"w");

-php
-, , , ,