Omnipay异常没有被抓住

时间:2016-05-26 19:07:31

标签: exception-handling try-catch omnipay

使用Craft CMS实现Omnipay。对Craft和Onmipay来说相对较新,但希望我的一般概念知识不在这里:

这看起来很简单,应该用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 / Craft需要做什么来捕获此异常,以便我可以将用户重定向到列出错误的正确页面?

1 个答案:

答案 0 :(得分:1)

尝试更改此内容:

} catch (Exception $e) {

对此:

} catch (\Exception $e) {