在生产环境中使用异常:尝试捕获阻止“返回”布尔值?

时间:2016-11-02 09:05:13

标签: php oop exception paypal boolean

该应用程序基于MVC模式构建,因此我的控制器与我的模型分开。

我正在使用两个支付网关,Stripe和PayPal,并已将API代码移至名为Payment_Model.php的模型中。

这两个函数都有巨大的try / catch块,当付款失败时会抛出各种错误,这对我来说是件好事,对客户来说不是这样......

这是一个try catch块示例

     try {

        Stripe::setApiKey($this->config->item('stripe_secret_key'));

        $customer = Customer::create([
            'email'  => 'customer@example.com',
            'source' => $this->input->post('stripe_token'),
        ]);

        $charge = Charge::create([
            'customer'    => $customer->id,
            'amount'      => $option->price,
            'currency'    => 'eur',
            "description" => "Demo Transaction", // @TODO
        ]);

    } catch (Exception $e) {

    } catch (Stripe_CardError $e) {
        throw new Exception($e);
    } catch (Stripe_InvalidRequestError $e) {
        throw new Exception($e);
    } catch (Stripe_AuthenticationError $e) {
        throw new Exception($e);
    } catch (Stripe_ApiConnectionError $e) {
        throw new Exception($e);
    } catch (Stripe_Error $e) {
        throw new Exception($e);
    } catch (Exception $e) {
        throw new Exception($e);
    }

我不想在我的生产环境中显示这些错误或异常...而是我想用throw new Exception($e)替换false,以便我可以在我的控制器中调用模型函数如果出现问题,我可以将用户重定向到一个不错的错误页面......

所以我的问题是:

我可以返回一个布尔值,如果遇到了一些不好的东西,那么我可以重定向到我的控制器中的成功页面或错误页面吗?或者我错过了使用例外的观点?

0 个答案:

没有答案