题
我使用的是 PHP 4,我知道导致错误并停止一切的唯一方法是调用 die()。但万一我稍后遇到错误并且不记得它来自哪里,我想指定 die() 发生的页面和行号(就像其他 php 错误一样)。有没有办法做到这一点?
谢谢!
解决方案
其他提示
我认为你应该使用 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()
) 将两者结合起来。
不隶属于 StackOverflow