gpt4 book ai didi

php - 更改 "Whoops, looks like something went wrong."消息

转载 作者:可可西里 更新时间:2023-10-31 23:20:06 25 4
gpt4 key购买 nike

我确定我在这里遗漏了一些愚蠢的东西。我正在尝试替换 Laravel 在出现异常时抛出的 non-debug 错误屏幕。它似乎忽略了下面的代码(放在 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:error 进行了另一个调用,它覆盖了你在 中尝试做的事情>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->handlers 数组中。我会在这个类中添加一些临时调试代码(该类可能在 Laravel 的单个组合优化文件中)以确定

  1. 如果您的处理程序未通过 handlesException 测试

  2. 如果在您“获胜”并发送响应后,队列中添加了另一个处理程序。

开始也没什么坏处
App::error(function()
{
exit(__FILE__);
});

然后构建您的错误处理程序,直到它停止被调用。这样你就知道 Laravel 的哪一部分有问题。

关于php - 更改 "Whoops, looks like something went wrong."消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25648538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com