Effective Java - 检查参数的有效性
作者:
DZQANN | 来源:发表于
2022-07-22 22:18 被阅读0次
第49条 检查参数的有效性
- 方法的参数限制,应该在文档中指明,并且在方法体的开头处检查参数,以强制施加这些限制
- 如果没有进行参数限制,最严重的会导致改变破坏了对象的状态,并在其它使用了被破坏的对象的时候抛出了异常
-
Objects
类提供了一些检查校验的方法,比如Java7的Objects.requireNonNull
,Java9的checkFromIndexSize
, checkFromToIndex
等等,Guava的Preconditions
也提供了很多校验的
- 对于有一些参数,方法本身没有用到,但是却被保存起来供以后使用,校验这类参数尤为重要。比如构造方法和set方法
- 假设方法对于它能接受的所有参数值都能合理的完成工作,对参数的限制就应该越少越好
思考
- 校验本身非常简单,难的是如何优雅的告诉调用者。底层代码都是选择了直接抛出异常,这确实是一个比较方便的方式,缺点就是需要上游统一
catch
住异常。有的时候抛出的是NPE,有的时候又是IllegalArgumentException
,而且不能区分出是参数异常还是运行时的异常。最好项目统一定义一个ParamIllegaleException
,在校验的时候统一抛出这个异常
- 如果选择不抛出异常,极大可能就是返回一个
null
,这样做就是会导致将错误的发现变晚了,到后面其它逻辑抛出了NPE才会被发现,无形中增加了分析异常的难度
本文标题:Effective Java - 检查参数的有效性
本文链接:https://www.haomeiwen.com/subject/vbtiirtx.html
网友评论