首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel处理异常

Laravel处理异常
EN

Stack Overflow用户
提问于 2013-03-29 03:39:34
回答 2查看 4.1K关注 0票数 2

我正在一起使用Stripe和Laravel。如果Stripe检测到为卡充电时出错(例如使用一个引发无效安全代码错误的测试信用卡号),则API绑定应该抛出一个异常,而它们就是这样做的。问题是,在Laravel抛出错误500页之前,我在捕捉异常时遇到了问题(我试图使用错误消息执行重定向)。

我编写的代码可以在Pastebin:http://pastebin.com/ZaW2xbbt上找到

我期望的行为是让catch触发并执行重定向,但是相反,我会得到带有消息和“未处理异常”的堆栈跟踪。这让我很困惑,因为我在处理这个例外。

$customer这样的变量是有效的,并且以前已经定义过。有什么好主意吗?

EN

回答 2

Stack Overflow用户

发布于 2013-07-07 01:31:35

对于任何未来的观众,这里有一篇关于laravel 4中的错误处理的文章。

Laravel 4允许您根据异常类型捕获异常。例如,您可以通过将以下内容添加到代码中来处理Symfony的HttpException及其子类:

代码语言:javascript
复制
// Catch HttpException, NotFoundHttpException, etc etc
App::error(function(HttpException $exception, $code, $fromConsole)
{
    ...
});

Symfony HttpExceptions (在Laravel中使用)可以找到这里

您还可以将其抛到ServiceProvider中:

代码语言:javascript
复制
<?php namespace My\Namespace;

use Illuminate\Support\ServiceProvider;
use Symfony\Component\HttpKernel\Exception\HttpException;

class MyServiceProvider extends ServiceProvider {

    public function register()
    {
            $this->app->error(function(HttpException $exception, $code, $fromConsole)
            {
                ...
            });
    }

}

希望这能帮上忙!

票数 6
EN

Stack Overflow用户

发布于 2019-01-07 08:37:34

通常,Laravel记录的所有错误都记录在storage/logs文件夹中。

无论如何,500错误可能是语法/解析错误,在这种情况下,在发生错误时还不能加载Laravel框架,如果是的话,该异常不会由Laravel处理。

在本例中,您应该以某种方式访问apache/vargrant/whatif错误日志(取决于您的服务器功能和配置),在我个人的情况下,我已经将服务器配置为将该日志放在/storage/logs/error_log.txt文件中,以便我可以像其他Laravel服务器日志一样访问这些日志。

请注意,在Laravel 5中,您有app/Exceptions/Handler.php作为自定义异常处理/报告的入口点。

https://laravel.com/docs/5.7/errors#the-exception-handler

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15696945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档