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

谢谢!

有帮助吗?

解决方案

您应该看看魔术常量。

echo __LINE__; // Line number

您也可以运行 error_log中()发送错误静静到日志中。

其他提示

我认为你应该使用 trigger_error()以产生E_USER_ERROR或E_USER_WARNING。这允许您控制详细的行为。例如,您可以指定是否信息应该在所有使用的error_reporting()显示,或处理E_USER_WARNING :S。明确使用的set_error_han dler()

的最简单的方法是使用:

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

如果你使用PHP5,你也可以使用例外:

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

堆栈跟踪将揭示整个调用堆栈和线这被抛出上。

(编辑:由于[@约翰伊萨克]和[@Emil H]为通知我不添加例外PHP直到PHP5)

除了@Jukka Dahlbom和@奥拉维尔Waage的建议,您也可以考虑使用 debug_backtrace()

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top