2016-05-26 127 views
0

使用工藝CMS實施Omnipay。比較新的工藝和Onmipay但希望我的一般概念的知識是不是在這裏下車:Omnipay異常不被抓住

這似乎很簡單,一個異常應該用try/catch塊被抓到沒有?

// Validate on Omnipay Credentials 
    $formInputData = array(
     'number'   => $info->CardNumber, 
     'expiryMonth'  => $info->ExpireMonth, 
     'expiryYear'  => $info->ExpireYear, 
     'cvv'    => $info->SecurityCode, 
     'first_name'  => $info->Cardholder, 
     'billingAddress1' => $info->CardAddress, 
     'billingCity'  => $info->CardCity, 
     'billingState'  => $info->CardState, 
     'billingPostcode' => $info->CardZip, 
    ); 
    //try/catch for Omnipay Invalid Card Exception 
    try{ 
     $card = new CreditCard($formInputData); 
     $card->validate(); 
    } catch (Exception $e) { 
     echo 'blah'; 
    } 

這不捕獲異常,而是我重定向到一個異常頁面說以下內容:然後 Omnipay\Common\Exception\InvalidCreditCardException

Card number should have 12 to 19 digits

其次是堆棧跟蹤到的CreditCard類它拋出基於任何故意信用卡錯誤,我破例。

爲什麼不捕捉異常和表演我的catch塊?需要與Omnipay /工藝做得到這個異常捕獲,所以我可以將用戶重定向到正確的頁面錯誤列出什麼?

回答

1

嘗試修改此:

} catch (Exception $e) { 

要這樣:

} catch (\Exception $e) { 
+0

非常感謝你。我能夠查明爲什麼這是有效的,而不是沒有。再次感謝! – Atom145