2

我正在使用 PHP 4,我知道导致错误并停止一切的唯一方法是调用 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,你也可以使用 Exceptions:

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

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

(编辑:感谢 [@John Isaacs] 和 [@Emil H] 告知我 PHP5 之前没有将异常添加到 PHP)

于 2009-03-25T16:24:47.993 回答
4

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

于 2009-03-25T16:33:32.717 回答
2

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

于 2009-03-25T16:27:03.027 回答
0

更好地error_log()用于报告错误和debug_backtrace()调试。您还可以编写自己的错误处理函数(请参阅 参考资料set_error_handler())来结合两者。

于 2009-03-25T16:29:45.003 回答