加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 更改“哎呀,看起来像是出了问题.”消息

发布时间:2020-12-13 16:54:07 所属栏目:PHP教程 来源:网络整理
导读:我确定我在这里错过了一些愚蠢的东西.我正在尝试替换Laravel在出现异常时抛出的非调试错误屏幕.它似乎忽略了下面的代码(放在start / global.php中): App::error(function(Exception $exception,$code){ Log::error($exception); if(!Config::get('app.debug
我确定我在这里错过了一些愚蠢的东西.我正在尝试替换Laravel在出现异常时抛出的非调试错误屏幕.它似乎忽略了下面的代码(放在start / global.php中):

App::error(function(Exception $exception,$code)
{
    Log::error($exception);
    if(!Config::get('app.debug')) {
        return Response::view('errors.exception',['message' => $exception->getMessage()],500);
    }
});

为什么会忽略这一点?我本来应该在其他地方做些什么吗?

有点清晰:

我正在使用QueryException(HY000)测试它.但这肯定不会有所作为?

使用Laravel 4.2

解决方法

没有看到你的系统就很难说,但是我的第一个猜测就是对App的另一个调用:在你的app之后发生的错误会覆盖你在app / global.php中尝试做的事情.

我刚刚写了关于Laravel sets up it’s error handling recently的文章.在阅读了那篇文章(或者可能跳过它并潜入)之后,我调试这个的方式就是跳进去

vendor/laravel/framework/src/Illuminate/Exception/Handler.php

并查看callCustomHandlers的定义.这是通过App:error调用任何处理程序设置的方法

protected function callCustomHandlers($exception,$fromConsole = false)
{
    foreach ($this->handlers as $handler)
    {
        //...
    }
}

您的处理程序将位于$this->处理程序数组中.我将为此类添加一些临时调试代码(该类可能在Laravel的单个组合优化文件中)来确定

>如果您的处理程序未通过handleException测试
>如果在“获胜”并发送响应之后有另一个处理程序添加到队列中.

从一开始也不会伤害

App::error(function()
{
    exit(__FILE__);
});

然后构建你的错误处理程序,直到它被停止被调用.那样你就知道Laravel有什么问题了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读