PHPリファレンス(逆引き)

PHPリファレンス
 
例外処理をする( try-catch )
スポンサードリンク

例外処理をするには、 try〜catchステートメントを使います。

try (
  // 例外発生の可能性がるコード
}
catch (例外クラス名 変数) {
  // 例外発生時の処理
}

try節の中には、例外が発生する可能性がある正常系処理のコードを記述します。

catch節の「()」には、第一引数に、try節で発生した例外をcatchする例外クラス名を指定します。
第二引数には、catchした例外クラスのインスタンスを代入する変数を指定します。



例1) 例外「Exception」を発生させてcatchしたら、例外エラーメッセージを表示する。

<?php
try {
 echo "先行処理\n";

 $error = '例外メッセージ!!';
 throw new Exception($error);

 // 例外に続く処理は実行されない
 echo "後続処理";

} catch (Exception $e) {
 echo "例外キャッチ:", $e->getMessage(), "\n";
}
?>

●実行結果
先行処理
例外キャッチ:例外メッセージ!!



例2) 独自例外「FileNotFoundException」を発生させてcatchしたら、例外エラーメッセージを表示する。

<?php
// exception クラスを継承て 独自の例外クラスを定義
class FileNotFoundException extends exception {
}

class TestClass {
 function read($filename){
  if (!file_exists($filename)) {
    // ファイルが無い場合は、例外「FileNotFoundException」を発生させる
    throw new FileNotFoundException("ファイル:" . $filename . "が存在しません!!");
  }
 }
}

try{
 $class = new TestClass();
 $class->read("test_file.txt");
} catch(FileNotFoundException $e) {
 echo "例外キャッチ:", $e->getMessage(), "\n";
}
?>

●実行結果
例外キャッチ:ファイル:test_file.txtが存在しません!!



スポンサード リンク


エラー出力レベルの設定( error_reporting )
エラー発生時の後処理を定義する( set_error_handler() )
デフォルト例外ハンドラを定義する( set_exception_handler() )
ユーザーエラーを発生させる( trigger_error()、user_error() )
エラーログを出力する( error_log() )
例外処理をする( try-catch )

PHP基本へ
忘れっぽいエンジニアのPHPリファレンス TOPへ