2016-05-26 91 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