PHP以显示丑陋的错误消息而闻名,尽管它们有时很有用。我知道我可以用
隐藏错误消息error_reporting(0);
这没关系,但它让用户完全处于黑暗状态。该页面已停止工作,他们不知道原因。如何显示一条简单的信息:“抱歉,有错误。请发送电子邮件给网站管理员”?
对于所有错误,这将是相同的消息,我想可能会弹出一个javascript警报,但对任何其他想法都是开放的。
答案 0 :(得分:2)
您需要编写这样的自定义错误处理程序。正如您在底部看到的,我正在引入 FATAL
错误。这里的PHP不会像你引用的那样吐出任何着名的丑陋的错误消息;),它只会打印Some Error Occured. Please Try Later.
<?php
set_error_handler( "log_error" );
set_exception_handler( "log_exception" );
function log_error( $num, $str, $file, $line, $context = null )
{
log_exception( new ErrorException( $str, 0, $num, $file, $line ) );
}
function log_exception( Exception $e )
{
echo "Some Error Occured. Please Try Later.";
exit();
}
require_once("texsss.php");// I am doing a FATAL Error here
答案 1 :(得分:1)
您可以编写执行此操作的自定义错误处理程序
答案 2 :(得分:1)
这通常通过例外来完成。如果出现问题,你会抛出一个异常,然后用exception handler“处理它”。
function exception_handler($exception) {
echo "Oops! Something went wrong! We're looking into it!";
}
set_exception_handler('exception_handler');
throw new Exception('Uncaught Exception');
您还可以使用register_shutdown_function来捕获一些致命错误。
set_error_handler也可能会引起你的幻想。
答案 3 :(得分:1)
有些规则应该适用于生产服务器:
display_errors = off
。log_errors = on
并在error_log
中定义有效的日志目标。其他人已经充分回答了对用户方的错误处理。
答案 4 :(得分:0)