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有什么问题了. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |