如何确定500错误并显示自定义错误消息

时间:2019-01-03 10:48:44

标签: php codeigniter http codeigniter-3

我正在尝试从excel工作表中导入一些数据,然后将此数据插入我的数据库中,我想要的是,如果用户上传了大量条目,比如说在excel工作表中输入了16000个条目,并试图上传大量数据在我的服务器上,然后服务器显示500个内部服务器或服务器来处理浏览器上的此请求,因此我必须在php服务器端捕获此错误,并向用户显示我的自定义消息。

为此,我试图抓住它,但是它不起作用,所以请帮助我。

<?php
    ini_set('display_errors', 1);

    function import_client()
    {
        try
        {
            //my php code in this i am reading excel
            //sheet data and inserting in my database.
        }
        catch (Exception $e) 
        {
            echo "you are importing huge data
            hence server will not unable to handle this request";
        }
    }
?>

2 个答案:

答案 0 :(得分:0)

错误代码500是内部服务器错误。它显示您的服务器何时出错。在那之后它将不执行任何服务。所以没有办法处理它。

答案 1 :(得分:0)

由于您使用的是CodeIgniter,因此可以使用Here, in CI's User Guide中所述的CI内置功能来执行错误处理

也就是说,对于所有没有被try-catching或其他方法明确捕获的情况,错误处理应该是经过正确编码的应用程序的最后一层。至少在开发环境上,您应该尝试在启用完整日志记录和错误报告的情况下重现错误,并尝试找出如何防止错误(而不是仅在发生错误时进行处理)。

即使您没有提供太多数据,很多事情也会浮现在脑海。如果5xx错误是由于处理时间过长而触发的,则可以考虑将上传的工作表拆分为多个块并进行批量处理。也许您的数据库正在运行,在这种情况下,您可能会遇到服务器规格问题,甚至每次插入时都要进行许多索引计算。工作表本身可能包含一些会干扰您插入内容的内容(例如,违反表/字段定义)。

您是否试图确定错误原因?