Вот пример Stripe о том, как обрабатывать исключения API :
try {
// Use Stripe's library to make requests...
} catch(\Stripe\Exception\CardException $e) {
// Since it's a decline, \Stripe\Exception\CardException will be caught
echo 'Status is:' . $e->getHttpStatus() . '\n';
echo 'Type is:' . $e->getError()->type . '\n';
echo 'Code is:' . $e->getError()->code . '\n';
// param is '' in this case
echo 'Param is:' . $e->getError()->param . '\n';
echo 'Message is:' . $e->getError()->message . '\n';
} catch (\Stripe\Exception\RateLimitException $e) {
// Too many requests made to the API too quickly
} catch (\Stripe\Exception\InvalidRequestException $e) {
// Invalid parameters were supplied to Stripe's API
} catch (\Stripe\Exception\AuthenticationException $e) {
// Authentication with Stripe's API failed
// (maybe you changed API keys recently)
} catch (\Stripe\Exception\ApiConnectionException $e) {
// Network communication with Stripe failed
} catch (\Stripe\Exception\ApiErrorException $e) {
// Display a very generic error to the user, and maybe send
// yourself an email
} catch (Exception $e) {
// Something else happened, completely unrelated to Stripe
}
Я делаю несколько запросов и хотел бы повторно использовать этот фрагмент, например , например так.
Прежде чем я начну создавать функцию обтекания, я хочу посмотреть, есть ли лучший способ CakePHP.
Я прочитал Создание собственного обработчика ошибок , но неясно, как заставить мой src/Error/StripeError.php
ловить и обрабатывать именно эти \Stripe\Exception\*
экземпляры.
По сути,Я пытаюсь создать отдельный класс catch и отображать все ошибки Stripe на всем сайте. Как вы думаете, это возможно / разумно?