2

私はPHP4を使用していますが、エラーを発生させてすべてを停止する唯一の方法は、die()を呼び出すことです。しかし、後でエラーが発生し、それがどこから来たのか思い出せない場合に備えて、die()が発生したページと行番号を指定したいと思います(他のphpエラーと同様)。これを行う方法はありますか?

ありがとう!

4

5 に答える 5

6

魔法の定数を調べる必要があります。

echo __LINE__; // Line number

error_log()を実行して、エラーを静かにログに送信することもできます。

于 2009-03-25T16:24:27.307 に答える
4

最も簡単な方法は、次を使用することです。

echo __FILE__ . ": line " . __LINE__;
die();

PHP5を使用する場合は、例外を使用することもできます。

throw new Exception("My error message!");

スタックトレースは、呼び出しスタック全体とこれがスローされた行を明らかにします。

(編集:例外がPHP5までPHPに追加されなかったことを知らせてくれた[@JohnIsaacs]と[@EmilH]に感謝します)

于 2009-03-25T16:24:47.993 に答える
4

E_USER_ERRORまたはE_USER_WARNINGを生成するには、trigger_error()を使用する必要があると思います。これにより、動作を詳細に制御できます。たとえば、error_reporting()を使用してメッセージを表示するかどうかを指定したり、set_error_handler()を使用してE_USER_WARNING:sを明示的に処理したりできます。

于 2009-03-25T16:33:32.717 に答える
2

@Jukka Dahlbomと@ÓlafurWaageの提案に加えて、の使用を検討することもできますdebug_backtrace()

于 2009-03-25T16:27:03.027 に答える
0

error_log()エラーの報告とdebug_backtrace()デバッグに使用することをお勧めします。set_error_handler()両方を組み合わせるために、独自のエラー処理関数(を参照)を作成することもできます。

于 2009-03-25T16:29:45.003 に答える