1.系统异常设计的出发点:
- 良好的异常信息展示,开发运维人员能快速定位问题。
- 响应外部调用异常时,应能明确指明是内部异常还是调用条件不满足导至。
- 响应用户操作异常时,能友好的提示用户。
如何做到以上3点?
1.1 首先我们需要对异常进行分类。
- 内部异常
- 资源环境导致(系统环境异常、数据库连接超时、第三方服务响应超时)
- 第三方服务错误响应
- 第三方响应结果错误
- 外部传入参数非法
- 错误的编码逻辑
- 错误的配置
- 异常的业务数据(业务数据缺失)
- 业务异常
- 用户操作错误
- 业务条件不满足
1.2 其次需要在系统中正确的捕获这类异常,并抛出。
- 方法入参进行合法性验证。
- 对系统外部提供的接口,是必须要进行参数验证(必须)
- 系统内部对外外层提供接口,进行验证
- 工具类进行参数验证
- public 方法要进行验证
- private 方法(不建议参数验证)
- 第三方响应结果合法性验证。
- 获取第三方法结果后,根据你们的约定进行验证。
- 业务处理前,对业务业务前置条件进行验证。
- 业务处理前,验证业务条件(验证佘额、验证这个帐户有没有被公安门锁定)<