PHP / Basic / 例外処理

PHP / Basic / 例外処理

バージョンと製造年月日

  • 2011-08-09
  • PHP5.3

例外を補足する

意図的に例外を発生させる

class Hoge{
    function piyo(){
        echo "piyopiyo";
        throw new Exception("unko");   #ここで発生させてる
    }
}
 
$a = new Hoge();
$a->piyo();

こいつを実行すると

Fatal error: Uncaught exception

なんかが発生する

共通的に例外を補足する関数をセットする

本当の本番の時とかはPHPの標準的なエラー補足を使わないで、自作のハンドリング機構を組み込みたいところだ。

自作ならばここで細かくtry-catchする手間も省けたりする。

set_exception_handlerという関数に例外を補足するための例外オブジェクトを1個引数にとる関数をしていしてやると、catchされなかった例外はPHPの標準例外処理機構には飛ばずにexception_handler関数に飛ぶ

function exception_handler($e){
    echo $e->getMessage();
    echo "unko";
}
set_exception_handler('exception_handler');

こうなると、catchから漏れた例外はどのクラスで発生しようがどの場所で発生しようがexception_handler関数に集まることになる。

タグ

php/basic/exception/start.txt · 最終更新: 2020-10-26 18:40 by ore