在使用 SDK 的时候,怎么选择正确的 Exception 类来捕捉错误呢?

在laravel5.5中使用easywechat的sdk来实现项目的微信相关业务的时候,写到了以下代码

        $app = self::$wxMiniApp->wxMiniApp();
        try {
            $result = $app->auth->session($param['js_code']);
        } catch (InvalidConfigException $e) {
            app('log')->info('InvalidConfigException'.$e);
        }

感觉很疑惑,为何在使用SDK的这个相关方法的时候,要使用InvalidConfigException类来捕捉错误。
因此感觉有几个疑惑:

  1. 所有的SDK都会有他自定义的Exception类来捕捉SDK调用的时候产生的错误吗
  2. 当使用SDK的时候,在调用处如何选择正确的Exception类来捕获错误

    例如使用EasyWhat的解密数据相关方法时,使用的DecryptException来捕捉

谢谢大家解答我的疑惑 ♪(^∀^●)ノシ (●´∀`)♪

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案
  1. 这个看 SDK 的作者怎么写 SDK 了,作者可以使用 PHP 自带的异常类,也可以自定义,有的 SDK 也不抛异常
  2. 一般是看 SDK 抛出了什么异常,然后针对性地捕获
  3. 头像..无敌....
4年前 评论
半人间 4年前
tomandyudezhi (楼主) 4年前
tomandyudezhi (楼主) 4年前
aen233 4年前
讨论数量: 2
  1. 这个看 SDK 的作者怎么写 SDK 了,作者可以使用 PHP 自带的异常类,也可以自定义,有的 SDK 也不抛异常
  2. 一般是看 SDK 抛出了什么异常,然后针对性地捕获
  3. 头像..无敌....
4年前 评论
半人间 4年前
tomandyudezhi (楼主) 4年前
tomandyudezhi (楼主) 4年前
aen233 4年前

既然是5.5,建议你直接catch Throwable,因为大部分情况下你不需要在运行时知道sdk抛出什么异常,只需要知道有异常抛出,进行了合适的中断处理并记录了异常堆栈。至于到底抛出了什么异常,这是你排查异常日志的时候该做的事。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!