2016-05-26 6 views
0

Omnipayを実装するCraft CMSを使用しています。 Craftと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クラスにスタックトレースが続いています私が行った意図的なクレジットカードのエラーに基づいて例外がスローされます。

なぜ例外をキャッチしてキャッチブロックを実行しないのですか?この例外を捕まえるためにOmnipay/Craftで何をする必要があるので、エラーが表示された適切なページにユーザーをリダイレクトできますか?これに

} catch (Exception $e) { 

答えて

1

は、この変更してみてください

} catch (\Exception $e) { 
+0

をありがとうございました。私はなぜそれがないと反対に働いたかを調べることができました。再度、感謝します! – Atom145

関連する問題