首页 > 代码库 > java之断言

java之断言

   断言一般用于程序的自我保护。

      

  1  断言的概念:

   我认为断言的概念不是断定的意思,而是判断的意思。当我们写程序时,有时候希望某个值符合我们的想法,如果那个值不符合我们的想法,我们才能改正它。(有点绕 来看一个例子)

   技术分享

  上面的语句会在运行时判断。

 

   其实断言也就是为了解决这个问题:我们希望可以在测试的时候如果某个值不满足我们的要求,能抛出异常,满足我们的要求了,就什么也不做,并且不用写任何的throw语句。

    java提供了两种形式(这个过程需要使用

     assert condition; 和assert condition:expression(如果条件为false 会抛出一个AssertError(其实属于异常体系中的Error),第二种会把表达式的结果封装在Error中)

 技术分享

技术分享

 

    这个过程需要使用 如果我们没有带参数进去,那么断言不会开启。我们的问题就解决了,如果在测试时加参数判断成功,就可以决定在运行时不加参数进行处理。

技术分享


 

     2 启用和禁用断言

  上面已经说如何启用断言的,默认的禁用的。启用断言或者禁用断言不必重新编译。启动断言或禁用断言是类加载器的功能,断言被禁用,类加载器就无视断言代码。因此如果我们测试好了,就相当于没有任何判断的代码,我们最初想要实现的目标也达到了。

 

 

下面的这个可能就很少用了:

技术分享


 3 使用断言完成参数检查

   java语言中给出了三种机制来处理系统错误:

   1 抛出异常

   2  日志

   3 使用断言

   那么什么时候使用断言呢?

   1 断言致命的,不可恢复的错误

   2 断言只用于开发和测试阶段

 

 

 

java之断言