[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 06/11 12:00 / Filesize : 340 KB / Number-of Response : 1015
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【PHP】下らねぇ質問はここに書き込みやがれ 7



154 名前:デフォルトの名無しさん (ワッチョイ 0bd6-rApL) mailto:sage [2016/11/26(土) 11:00:09.75 ID:zRxKnjZm0.net]
PHP5.6までのケースで説明すると、PHPのエラーは元々例外ではないので、
php.net/manual/ja/class.errorexception.php
の「例」のようにexception_error_handler()を設定して例外に変換することで、エラーハンドリングを行いやすくしていた。

この場合の変換に用いられるのがErrorException。

つまりErrorExceptionは、Error、WarningやNoticeといった、プログラムの実行に関する例外として投げるべきもので、
端的にいうとデバッグ用として用いられ、アプリケーション特有の例外とは分けて考える。

例)
try {
 if($value[0] > 5){
  throw new MyException("値が許容値を超えています");
 }
} catch(MyException $ex){
 // 与えられた値が正しくない場合の処理。アプリケーション特有の例外。プログラムは正しく動作している
 echo $ex->getMessage();
} catch(ErrorException $ex){
 // プログラム実行エラー
 // 例えば$valueがarrayでなかった場合Noticeが発生し、これがErrorExceptionに変換されて投げられてくる
 // これはシステムの不具合であり、そこにバグがあることがわかる。
 // この例外のエラーメッセージはシステムのバグの実態なので、ユーザーに知らせるべきではない
 echo "システムエラーです";
} catch(Exception $ex){
 // 予期しない例外。ここで例外がキャッチされた場合も、やはりバグがあることがわかる。
 // この例外のエラーメッセージはシステムのバグの実態なので、ユーザーに知らせるべきではない
 echo "システムエラーです";
}






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<340KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef