【发布时间】:2018-04-01 21:38:01
【问题描述】:
是否有更简洁的方法来处理单个 try 块的多种异常类型?正如您将在下面看到的,我们有要为不同的 catch 语句执行的特定代码。
此函数是使用重复尝试捕获逻辑的众多函数之一。是否有可能以某种方式消除这种重复的捕获代码?
public function add_payment_method(Request $request){
try{
// Try to do some stuff
} catch (\Stripe\Error\RateLimit $e) {
/*
CODE FOR THIS SPECIFIC EXCEPTION
*/
} catch (\Stripe\Error\InvalidRequest $e) {
/*
CODE FOR THIS SPECIFIC EXCEPTION
*/
} catch (\Stripe\Error\Authentication $e) {
/*
CODE FOR THIS SPECIFIC EXCEPTION
*/
} catch (\Stripe\Error\Base $e) {
/*
CODE FOR THIS SPECIFIC EXCEPTION
*/
} catch (\Stripe\Error\ApiConnection $e) {
/*
CODE FOR THIS SPECIFIC EXCEPTION
*/
} catch (\Exception $e) {
/*
CODE FOR GENERIC EXCEPTION
*/
}
}
【问题讨论】:
-
捕获
Stripe\Error\Base而不是特定的