2013-03-29 64 views
2

我正在使用Stripe API和Laravel在一起。如果Stripe檢測到收取卡的錯誤(例如使用引發無效安全代碼錯誤的測試信用卡號),API綁定應該引發異常,他們會這樣做。問題是,我遇到問題捕獲 Laravel拋出錯誤500頁之前的異常(我試圖用錯誤消息來執行重定向)。Laravel手柄異常

我寫的代碼可以在引擎收錄:http://pastebin.com/ZaW2xbbt

我期待的行爲是catch火,並進行重定向,而是,我得到堆棧跟蹤與消息和「未處理的例外」。這讓我感到困惑,因爲我處理異常時我在am

諸如$customer之類的變量是有效的,並且先前已被定義。任何想法發生了什麼?

+0

要捕捉laravel異常,使用'\ Exception' – itachi

+0

這似乎仍然顯示默認的堆棧跟蹤,無論我使用(root或其他)的前綴'Extension'的名稱空間 –

+0

因此,您要將這些異常導入當前名稱空間那麼範圍呢? –

回答

6

對於任何未來的觀衆,這裏有一篇關於error handling in laravel 4的文章。

Laravel 4可讓您通過異常類型捕獲異常。舉例來說,你可以處理的Symfony的HttpException及其子類的加入給你的代碼:

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

的Symfony HttpExceptions(在Laravel使用)可以發現here

您也可以在的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) 
      { 
       ... 
      }); 
    } 

} 

希望幫助!