11. 异常与错误处理
细心的你可能已经看到了,请求接口的方法 getWeather
可能会出现异常,然后在异常时我们还没有处理,所以是不合理的,这节就来优化这一部分。
说到异常,很多同学不是太理解它的作用,不少同学跟我反馈,不知道什么时候该抛出异常,我来为你解答:
什么时候应该抛出异常?
按照单一职责原则,一个类只应该关心自己的逻辑,当出现问题的时候,如果不是当前类该处理的,我们就应该抛出而不是消化。怎么理解呢?比如,请求天气接口的时候,网络出现问题,Guzzle 抛出了异常,这时候应该抛出异常。可是为啥不是 catch 异常然后返回 false
呢?这就涉及到边界问题了,业务异常与运行时异常 要区分开,对方接口说你要查询的城市不存在,返回错误,这属于业务异常,这时候是不会抛出异常的。而你请求的 API 不存在,或...