2

Stripe API と Laravel を併用しています。Stripe がカードへの課金エラー (無効なセキュリティ コード エラーをスローするテスト クレジット カード番号の使用など) を検出した場合、API バインディングは例外をスローすることになっています。問題は、 Laravel がエラー 500 ページをスローする前に例外をキャッチする際に問題が発生していることです (代わりにエラー メッセージでリダイレクトを実行しようとしています)。

私が書いたコードは、Pastebin で入手できます: http://pastebin.com/ZaW2xbbt

私が期待している動作は、 がcatch起動し、リダイレクトが実行されることですが、代わりに、メッセージと「未処理の例外」を含むスタック トレースが表示されます。私は例外を処理しているので、それ私を混乱させています。

などの変数$customerは有効で、以前に定義されています。何が起こっているのですか?

4

2 に答える 2

6

今後の閲覧者のために、 laravel 4 でのエラー処理に関する記事を次に示します。

Laravel 4 では、例外の種類ごとに例外をキャッチできます。たとえば、HttpExceptionこれをコードに追加することで、Symfony とそのサブクラスを処理できます。

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

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

}

それが役立つことを願っています!

于 2013-07-07T01:31:35.780 に答える