标签:assert logs expr 语言 表达式 表达 cond ssi 功能
断言一般用于程序的自我保护。
1 断言的概念:
我认为断言的概念不是断定的意思,而是判断的意思。当我们写程序时,有时候希望某个值符合我们的想法,如果那个值不符合我们的想法,我们才能改正它。(有点绕 来看一个例子)
上面的语句会在运行时判断。
其实断言也就是为了解决这个问题:我们希望可以在测试的时候如果某个值不满足我们的要求,能抛出异常,满足我们的要求了,就什么也不做,并且不用写任何的throw语句。
java提供了两种形式(这个过程需要使用
assert condition; 和assert condition:expression(如果条件为false 会抛出一个AssertError(其实属于异常体系中的Error),第二种会把表达式的结果封装在Error中)
这个过程需要使用 如果我们没有带参数进去,那么断言不会开启。我们的问题就解决了,如果在测试时加参数判断成功,就可以决定在运行时不加参数进行处理。
2 启用和禁用断言
上面已经说如何启用断言的,默认的禁用的。启用断言或者禁用断言不必重新编译。启动断言或禁用断言是类加载器的功能,断言被禁用,类加载器就无视断言代码。因此如果我们测试好了,就相当于没有任何判断的代码,我们最初想要实现的目标也达到了。
下面的这个可能就很少用了:
3 使用断言完成参数检查
java语言中给出了三种机制来处理系统错误:
1 抛出异常
2 日志
3 使用断言
那么什么时候使用断言呢?
1 断言致命的,不可恢复的错误
2 断言只用于开发和测试阶段
标签:assert logs expr 语言 表达式 表达 cond ssi 功能
原文地址:http://www.cnblogs.com/HJL085/p/6501073.html