返回信息流经常在写代码的时候陷入一个两难的抉择。
比如一个内部方法会返回一个对象,然后在方法的执行过程中会进行很多的校验以及条件判断,当不满足条件的的时候应该return null并打日志还是抛一个异常来阻断方法执行,或者有其他方式?
这是一条镜像帖。来源:北邮人论坛 / java / #64645同步于 2020/10/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
一个写代码的问题
cc19931002
2020/10/9镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
不用null用optional
多打log,你在思考要不要加log时候多半要加
当前上下文不可处理的错误才抛异常,希望调用者可以解决
返回null(划掉)none代表你处理了错误,返回值是有效的
用抛异常作为首选的错误处理手段。因为特殊返回值如果不处理就会安静地溜走,而异常(包括unchecked exception)如果不处理,就会一层层上抛,不主动处理的情况下默认终止。不要让错误安静地溜走。
参考于 Dubbo
- Failfast: 快速失败,只发起一次调用,失败立即报错,通常用于非幂等性的写操作
- Failsafe: 失败安全,出现异常时,直接忽略,通常用于写入审计日志等操作