Laravel处理异常

And*_*w M 2 php exception laravel

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

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

我期望的行为是catch触发和重定向,但相反,我得到了带有消息的堆栈跟踪和"未处理的异常".这让我感到困惑,因为我正在处理异常.

诸如$customer有效的变量之前已经定义过.有什么想法发生了什么?

fid*_*per 6

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

Laravel 4允许您按异常类型捕获异常.例如,您可以HttpException通过将其添加到您的代码来处理Symfony 及其子类:

// Catch HttpException, NotFoundHttpException, etc etc
App::error(function(HttpException $exception, $code, $fromConsole)
{
    ...
});
Run Code Online (Sandbox Code Playgroud)

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

您也可以在ServiceProvider中抛出它:

<?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)
            {
                ...
            });
    }

}
Run Code Online (Sandbox Code Playgroud)

希望有所帮助!