`
TonyLian
  • 浏览: 402851 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【第23条】检查参数的有效性

阅读更多

《第6章 方法》

 

    方法,或称之为函数,是我们要最常打交道的。这一章讲述了“如何写好方法”,重点是可用性健壮性灵活性这章中介绍的“技巧”都可以作为提高基本功素质的教材

 

 

【第23条】检查参数的有效性

 

    绝大多数方法和构造函数都对传入的参数有某些限制,如索引必须是非负数,对象引用不能是null,等等。如果一个无效的参数传入,应该首先对参数进行检查,如果有问题方法应很快失败,并清楚地抛出一个适当的异常(exception)指明错误的原因。同时应该使用Javadoc的@throws标签来说明。

 

    检查参数有效性的方法和形式可能因具体情况而异。这里要介绍一个“新”手段——assert(断言)。assert是Java1.4之后引入的为人热切期盼的一项新功能。您可以将该功能看作是异常处理的一种高级形式。断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式的值为真。例如,程序员可能会在程序中使用断言,使您永远也不会到达 switch 语句中的 default 条件。更多关于断言的介绍请见 http://publish.it168.com/2006/0317/20060317029801.shtml 或搜索网络。

 

    总之,当你编写一个方法或构造函数时,应该考虑对于它的参数都有哪些限制。你应当写到文档中,并在方法的开头进行检查。养成这样的习惯是非常重要的,这会使错误尽早地、准确地暴露出来。

 

 

 

【Effective Java 学习笔记】系列连载专题请见:
http://tonylian.iteye.com/categories/64208

 

分享到:
评论

相关推荐

    第二十三节 Sqlmap通用参数3-01

    Sqlmap是一款强大的、自动化SQL注入工具...了解并熟练运用这些参数,将使你在使用Sqlmap进行安全测试时更加得心应手,有效提升测试效率和准确性。在后续的课程中,我们将继续深入探索Sqlmap的更多高级特性和实战技巧。

    FANUC-OM参数说明书.doc

    - **057/5 HOT3 超行程—LMX—+LMZ 有效**:设定超行程检查的有效性。 - **065/3 PSOT 回零点前是否检查行程限位**:控制回零前是否进行行程限位检查。 - **0700—703 各轴正向行程**:设定各轴的正向行程限值。 - *...

    安全避险系统有效性评估实施报告.docx

    按照《煤矿安全规程》第六百七十三条的规定,矿井必须建立一套包括井下紧急撤离和避险设施在内的安全避险系统,并将其与监测监控、人员位置监测、通信联络等子系统结合。 **一、监测监控系统** 监测监控系统是矿井...

    三菱-发那科FANUC数控系统常用参数对照表.docx

    3. **第二原点**(2038、14214):设置除机床零点外的另一个参考点,扩展工作范围。 4. **背隙补正**(2011、18515、2012、18526):补偿机械结构间的间隙,提高精度。 5. **机床正负极限**(2013、13207、2014、...

    pcb设计检查表,很好用的pcb设计检查工具。

    PCB设计检查表涵盖了从前期准备到布局、布线等多个阶段的关键检查点,通过对这些检查点的详细说明,可以有效帮助设计人员确保PCB设计的质量和可靠性。遵循这些检查点不仅可以减少设计过程中的错误,还可以提高产品的...

    PCB布局设计及商业制造时应牢记10条法则

    第二条法则是保持电路路径的最短和最直接。这不仅有助于减少导线长度,降低信号在传输过程中可能遇到的阻抗和寄生效应,而且在模拟电路和高速数字电路设计中尤为重要。短路径可以提高系统性能并减少电磁干扰。 第三...

    2021年1月汽车修理工初级模拟试题及答案卷14.docx

    11. 第二十三题说明断电器触点闭合时,实际上接通的是低压电路,而非高压电路,这是点火系统的工作原理。 12. 第二十五题检查点火初级电路时,应使用欧姆表检查初级导线电阻,确保电路畅通。 这些题目和答案涵盖了...

    effectiveC++.zip

    - **第23条**:考虑使用抽象基类接口,而不是继承自具体的类。 - **第24条**:如果一个类将被用作基类,那么至少提供一个虚析构函数以支持多态性。 - **第25条**:在派生类中重写虚函数时,务必保持函数签名一致...

    压力容器安全检查表.docx

    - **目的**:作为第二道安全屏障。 - **要求**: - 完好,定期更换。 **5.5 快开门式压力容器** - **目的**:确保操作安全。 - **要求**: - 必须装设安全联锁装置。 - 门关闭到位后才能升压运行。 - 内部压力...

    代理人资格考试(电子化)复习精选汇总[7].docx

    - **第一百二十三条至第一百二十四条**:依法受聘评估和鉴定保险事故的专业机构和个人,必须公正执行业务。若因故意或过失给保险人或被保险人造成损害,应依法承担赔偿责任而非刑事责任。同时规定,保险合同相关的...

    信息化工程机房UPS合同.docx

    2. **第二条:合同标的及价格** - 描述了购买的UPS设备的型号、规格、数量、单价及总价,这是合同的核心内容,确保双方对交易物品有清晰的认知。 3. **第三条:付款方式** - 规定了支付设备款项的具体流程,可能...

    信息化工程机房UPS合同模板.doc

    **第二条 合同标的及价格** 合同中应详细列出所购买的UPS设备型号、数量、技术参数等,并明确总价款。包括UPS主机、电池组、配套的电源管理软件、安装服务等费用。 **第三条 付款方式** 支付条款通常包括预付款、...

    第23章、课堂讨论二(讨论课).ppt

    ### 第23章 课堂讨论二(讨论课) #### 知识点一:函数的定义与使用 **函数定义合理性** - **功能划分**:在设计函数时,应该确保每个函数执行单一且明确的任务。避免在一个函数中实现过多的功能,这有助于提高...

    SAP_S4HANA信用管理信贷配置手册v1.2.docx

    定义检查规则是确保信用控制有效性的核心部分。例如,010步骤用于统计信用风险总额的检查,020检查最大凭证值,110检查最早的未清项,120关注回款逾期天数,而130则检查到期未清项目。这些检查规则的配置分别在第10...

    VS2010轻松学习C#-从零到深入-天轰穿.NET4趣味编程视频教程_第23讲:泛型入门

    在本节“VS2010轻松学习C# - 从零到深入 - 天轰穿.NET4趣味编程视频教程_第23讲:泛型入门”中,我们将深入探讨C#中的一个重要特性——泛型。泛型是.NET Framework 2.0引入的关键功能,它极大地提高了代码的灵活性和...

    福建省厦门市2015届高三数学质量检查试题 文

    13. **椭圆方程**:第十三题要求根据椭圆上的两点求椭圆方程,这涉及到椭圆的标准方程及其参数的确定。 14. **三角函数**:第十四题通过单位圆上的点坐标求三角函数值,涉及三角函数的基本性质和坐标表示。 15. **...

    数据库优化设计之三十六计

    **第二十三计:避免对列的操作** 在查询条件中避免对列进行运算(如:`column + 1`),因为这会使得优化器无法有效地使用索引。 **第二十四计:建立函数索引** 函数索引是在函数或表达式的结果上建立的索引。它们...

    喷灌工程技术规范标准[详].doc

    GBJ85-85标准共分为九章、二十五节、一百二十六条以及三个附录,内容覆盖了喷灌工程的各个方面。其中,第一章对标准的总则做出了规定,明确标准的应用范围、引用标准以及定义等。而第二章到第七章则分别对喷灌工程的...

Global site tag (gtag.js) - Google Analytics