在使用 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来捕捉

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案
  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年前 评论

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