私はPHP4を使用していますが、エラーを発生させてすべてを停止する唯一の方法は、die()を呼び出すことです。しかし、後でエラーが発生し、それがどこから来たのか思い出せない場合に備えて、die()が発生したページと行番号を指定したいと思います(他のphpエラーと同様)。これを行う方法はありますか?
ありがとう!
最も簡単な方法は、次を使用することです。
echo __FILE__ . ": line " . __LINE__;
die();
PHP5を使用する場合は、例外を使用することもできます。
throw new Exception("My error message!");
スタックトレースは、呼び出しスタック全体とこれがスローされた行を明らかにします。
(編集:例外がPHP5までPHPに追加されなかったことを知らせてくれた[@JohnIsaacs]と[@EmilH]に感謝します)
E_USER_ERRORまたはE_USER_WARNINGを生成するには、trigger_error()を使用する必要があると思います。これにより、動作を詳細に制御できます。たとえば、error_reporting()を使用してメッセージを表示するかどうかを指定したり、set_error_handler()を使用してE_USER_WARNING:sを明示的に処理したりできます。
@Jukka Dahlbomと@ÓlafurWaageの提案に加えて、の使用を検討することもできますdebug_backtrace()
。
error_log()
エラーの報告とdebug_backtrace()
デバッグに使用することをお勧めします。set_error_handler()
両方を組み合わせるために、独自のエラー処理関数(を参照)を作成することもできます。