我正在使用PHP 4,我知道的唯一方法是导致错误并停止一切正在调用die()。但是如果我以后遇到错误并且不记得它来自哪里我想指定die()发生的页面和行号(就像其他php错误一样)。有没有办法做到这一点?
谢谢!
答案 0 :(得分:6)
答案 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()
)以结合两者。