zoukankan      html  css  js  c++  java
  • 断言的使用

    • ## 断言和异常
    断言是用来检查非法情况而不是错误情况的,用来帮开发者快速定位问题的位置。
    异常处理用于对程序发生异常情况的处理,增强程序的健壮性和容错性。
    • ## 断言的使用
    在防御式编程中经常会用断言(Assertion)对参数和环境做出判断,避免程序因不当的输入或错误的环境而产生逻辑异常,断言在很多语言中都存在,C、C++、Python都有不同的断言表示形式。

    1. assert特性

    (1)assert默认是不启用的
    (2)assert抛出的异常AssertionError是继承自Error的

    2. 使用assert的三种情况

    (1)在私有方法中放置assert作为输入参数的校验
    在私有方法中可以放置assert校验输入参数,因为私有方法的使用者是作者自己,私有方法的调用者和被调用者之间是一种弱契约关系,或者说没有契约关系,其间的约束是依靠作者自己控制的,因此加上assert可以更好地预防自己犯错,或者无意的程序犯错。
    (2)流程控制中不可能达到的区域
    这类似于JUnit的fail方法,其标志性的意义就是:程序执行到这里就是错误的,例如:
    public void doSomething(){  
          int i = 7;  
          while(i >7){  
           /*业务处理*/  
          }  
         assert false:"到达这里就表示错误";  
     } 
    (3)建立程序探针
    我们可能会在一段程序中定义两个变量,分别代表两个不同的业务含义,但是两者有固定的关系,例如var1=var2*2,那我们就可以在程序中到处设“桩”,断言这两者的关系,如果不满足即表明程序已经出现了异常,业务也就没有必要运行下去了。
  • 相关阅读:
    有是JSF的一个小问题,搞了我两天!从周五到周二
    MyFaces Tree2控件使用 From http://blog.163.com/net_wood/blog
    使用JSF的Selectonemenu
    SSO摘抄
    用于快速将 Web 应用程序集成到 WebSphere Portal 中的选项
    Lua 公历转农历算法
    编程语言适用场合。。。
    了解grep、vim的查找 和正则表达式
    程序员知识资产的投资
    铁道部新客票系统设计(一)
  • 原文地址:https://www.cnblogs.com/feipeng8848/p/7895450.html
Copyright © 2011-2022 走看看