我正在使用 PHP 4,我知道导致错误并停止一切的唯一方法是调用 die()。但是如果我稍后遇到错误并且不记得它来自哪里,我想指定 die() 发生的页面和行号(就像其他 php 错误一样)。有没有办法做到这一点?
谢谢!
最简单的方法是使用:
echo __FILE__ . ": line " . __LINE__;
die();
如果你要使用 PHP5,你也可以使用 Exceptions:
throw new Exception("My error message!");
堆栈跟踪将显示整个调用堆栈和被抛出的行。
(编辑:感谢 [@John Isaacs] 和 [@Emil H] 告知我 PHP5 之前没有将异常添加到 PHP)
我认为您应该使用trigger_error()来生成 E_USER_ERROR 或 E_USER_WARNING。这使您可以详细控制行为。例如,您可以使用error_reporting()指定是否应该显示消息,或者使用 set_error_handler() 显式处理 E_USER_WARNING:s。
除了@Jukka Dahlbom 和@Ólafur Waage 的建议,您还可以考虑使用debug_backtrace()
.
更好地error_log()
用于报告错误和debug_backtrace()
调试。您还可以编写自己的错误处理函数(请参阅 参考资料set_error_handler()
)来结合两者。