扔die()时指定页面/行?

时间:2009-03-25 16:23:07

标签: php die

我正在使用PHP 4,我知道的唯一方法是导致错误并停止一切正在调用die()。但是如果我以后遇到错误并且不记得它来自哪里我想指定die()发生的页面和行号(就像其他php错误一样)。有没有办法做到这一点?

谢谢!

5 个答案:

答案 0 :(得分:6)

您应该查看magic constants.

echo __LINE__; // Line number

您还可以运行error_log()将错误安静地发送到日志。

答案 1 :(得分:4)

最简单的方法是使用:

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

如果您使用PHP5,您还可以使用例外:

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

堆栈跟踪将显示整个调用堆栈以及抛出的行。

(编辑:感谢[@John Isaacs]和[@Emil H]告知我PHP之前没有添加例外情况)

答案 2 :(得分:4)

我认为您应该使用trigger_error()生成E_USER_ERROR或E_USER_WARNING。这允许您详细控制行为。例如,您可以指定是使用error_reporting()显示消息,还是使用set_error_handler()显式处理E_USER_WARNING:

答案 3 :(得分:2)

除了@Jukka Dahlbom和@ÓlafurWaage的建议外,您还可以考虑使用debug_backtrace()

答案 4 :(得分:0)

最好使用error_log()报告错误,并使用debug_backtrace()进行调试。您也可以编写自己的错误处理函数(请参阅set_error_handler())以结合两者。

相关问题