我尝试检查优惠券代码在条带中是否有效,然后再继续调用其API。如果您向订阅者发送无效的优惠券代码,则会收到致命错误。
所以,作为一个菜鸟,我想我会尝试try/catch
,但很明显我搞砸了一些东西。我正在做这样的事情:
if (!empty($_POST['coupon'])) { //see if person even submitted a code
try {
$couponValid = \Stripe\Coupon::retrieve($coupon);
throw new Exception();//if not a valid coupon code
} catch (Exception \Stripe\Error\InvalidRequest $e) {
echo("error");
}
}
//run the rest of the code if no errors
这仍然给我一些致命的错误,即优惠券代码不存在(它没有)。
PHP Fatal error: Uncaught Stripe\Error\InvalidRequest: No such coupon: fdsf
条带文档说要处理我正在做的错误like this(我认为)
我在这里做错了什么。
答案 0 :(得分:2)
从捕获中删除异常。
} catch (\Stripe\Error\InvalidRequest $e) {
如果您需要同时捕获Exception和\ Stripe \ Error \ InvalidRequest,您可以将捕获链接在一起。
} catch (\Stripe\Error\InvalidRequest $e) {
//Handle Invalid Request
} catch (Exception $e) {
//Handle Exception
}
如果你使用的是php 7.1+并且你想要同样的处理,无论抛出什么,你都可以管它们。
} catch (Exception | \Stripe\Error\InvalidRequest $e) {