• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPの例外処理)

PHPの例外処理について

このQ&Aのポイント
  • PHPの例外処理について詳しく教えてください。
  • PHPの例外処理はどのように使われるのか説明してください。
  • PHPで例外が発生する条件と、その例外をキャッチする方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • NARH
  • ベストアンサー率82% (88/107)
回答No.2

set_error_handler を使って、エラーがあったときに、Exception を throw するようにすると出来ることは出来るのですが、以前試したときは、何でもかんでも Exception を投げられるとハンドリングが面倒で、コードの量が増えてしまいそうなので却下した覚えがあります。 (lightweight な表現を望む開発メンバーだったので) もし行うなら、set_exception_handler も適切に実装した方がいいと思いますよ。 参考URLにまんまのソースがあります。

参考URL:
http://jp2.php.net/manual/ja/class.errorexception.php
noname#129301
質問者

お礼

上記のサンプル参考にしてうまくできました。 E_STRICTのエラーを対象からはずすなど考慮すべき点もありますが、 この方法を使いたいと思います。

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

やりたいのが、エラーの捕捉だけなら、こんな感じで。 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する必要がどうしてもあるのなら、上記関数の中で。

noname#129301
質問者

お礼

ありがとうございます。例外の種類を分類する際など、分岐することも確かに必要ですね。 参考にさせていただきます。

  • kool_noah
  • ベストアンサー率33% (95/285)
回答No.1

Exceptionクラスをcatchしているので、Exceptionを発生させればいいだけです。 throw new Exception('例外メッセージ');

noname#129301
質問者

お礼

回答ありがとうございます。 Exceptionをthrowする方法は既に知っていて、他の方法を探しています。 ご存知でしたらお教えください。