- ベストアンサー
PHPの例外処理について
- PHPの例外処理について詳しく教えてください。
- PHPの例外処理はどのように使われるのか説明してください。
- PHPで例外が発生する条件と、その例外をキャッチする方法について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
set_error_handler を使って、エラーがあったときに、Exception を throw するようにすると出来ることは出来るのですが、以前試したときは、何でもかんでも Exception を投げられるとハンドリングが面倒で、コードの量が増えてしまいそうなので却下した覚えがあります。 (lightweight な表現を望む開発メンバーだったので) もし行うなら、set_exception_handler も適切に実装した方がいいと思いますよ。 参考URLにまんまのソースがあります。
その他の回答 (2)
- notnot
- ベストアンサー率47% (4900/10358)
やりたいのが、エラーの捕捉だけなら、こんな感じで。 function my_error_handler($errno , $errstr){ if($errstr=="Division by zero"){ // エラー処理 return true; }else{ return false; // ゼロ除算でなければ標準に任せる } } $a = 10; $b = 0; set_error_handler("my_error_handler"); $result = $a/$b; restore_error_handler(); throwする必要がどうしてもあるのなら、上記関数の中で。
お礼
ありがとうございます。例外の種類を分類する際など、分岐することも確かに必要ですね。 参考にさせていただきます。
- kool_noah
- ベストアンサー率33% (95/285)
Exceptionクラスをcatchしているので、Exceptionを発生させればいいだけです。 throw new Exception('例外メッセージ');
お礼
回答ありがとうございます。 Exceptionをthrowする方法は既に知っていて、他の方法を探しています。 ご存知でしたらお教えください。
お礼
上記のサンプル参考にしてうまくできました。 E_STRICTのエラーを対象からはずすなど考慮すべき点もありますが、 この方法を使いたいと思います。