当我尝试使用set_error_handler时,laravel出现unserialize()错误

时间:2018-08-16 06:15:19

标签: php laravel

在Laravel中,我尝试使用php set_error_handler方法来处理Web应用程序的错误并避免崩溃,不幸的是,当我在__constructor()上定义此代码时(例如此示例),我得到了此错误:

  

数组:4 [▼
  “错误编号” => 8
  “错误字符串” =>“ unserialize():   123字节的偏移量0处出错”
  “错误文件” =>   “ C:\ xampp \ htdocs \ instacheeta \ vendor \ laravel \ framework \ src \ Illuminate \ Auth \ Recaller.php”   “错误线” => 24]

我的代码:

public function __construct()
{
    set_error_handler([$this, 'customError'], E_ALL);
    parent::__construct();
}

function customError($errno, $errstr, $errfile, $errline)
{
    dd(
        [
            'Error no ' => $errno,
            'Error String' => $errstr,
            'Error File ' => $errfile,
            'Error Line' => $errline
        ]
    );
}

似乎在dd上使用参数时出现问题,当我评论dd时我没有收到错误

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您所做的没有错。不幸的是,您已经设置了自己的错误处理程序,该错误处理程序调用customError方法。显然我认为确实存在错误。

DD转储给定的变量并按照文档中所述结束脚本的执行。

因此,当删除DD行时,尽管捕获的错误仍然存​​在,方法customError变为空/空。

这是使用set_error_handler的目的,因此您可以设置用户定义的错误处理函数并决定如何处理捕获的错误。