检查参数的有效性(38)

一、绝大多数方法和构造器对于传递给他们的参数都会有某种限制.net

  • 请在文档开头处清楚指明这些限制,在方法体开头检查参数,强制施加这些限制
  • 不然会出现各类异常
  • 最可怕的是没出现异常,返回的是错误结果

二、对于公有方法blog

  • 在JavaDoc 中加入@throws 说明违反会抛出什么异常

非公有方法:文档

  • 使用断言 检查参数
  • 这些断言是声称被断言条件将会为真,不管外围包客户端怎么使用它
  • 断言失败会抛出AssertionError
  • 正常发布的代码都是断言无效的,即正常发布的代码中断言语句都不执行的(或不起做用的)
  • 当执行代码时,使用-ea选项使断言有效,也可使用-da选项使断言无效(默认为无效)

三、有些参数方法并没用到,保存起来供后续调用使用get

  • 这种状况更加须要有效性检查,否则后面报错排查起来很费劲
  • 构造器是将参数保存起来以备后续使用的表明情形

四、执行计算任务前,先检查参数这一规定也有例外io

  • 有时有效性检查工做很是昂贵,或已经隐含着计算过程当中
  • 好比:Collections.sort(List ) ,sort 会对每一个元素进行比较,提早检查没有意义

五、有些时候,某些计算会进行隐式的执行必要的有效性检查class

  • 这种状况抛出的异常可能与文档中标明的异常不相符
  • 使用61条的异常转译技术,转为对应的异常

六、不是对参数的任何限制都是件好事List

  • 可以正常工做的状况下,限制越少越好

七、总结方法

  • 编写方法和构造器时,应该考虑它的参数有哪些限制
  • 应该把限制写到文档中
  • 显式的检查来实施这些限制
相关文章
相关标签/搜索