面试题整理:何时使用assert

馋奶兔 提交于 2020-02-27 19:54:33

请问在什么情况下会使用assert?

assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。
一般来说,assertion用于保证程序最基本、关键的正确性.assertion检查通常在开发和测试时开启.为了提高性能,在软件发布后,assertion检查通常是关闭的。断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为true;如果表达式的值为false,那么系统会报告一个AssertionError。断言使用代码如下:

assert(a > 0);    // throws an AssertionError if a <= 0

断言可以有两种形式:

assert Expression1;   //Expression1 应该总是产生一个布尔值
assert Expression1 : Expression2 ;   //当Expression1为true的时候后面Expression2被忽略,如果false的话,后面的表达式的结果会被计算出来并作为AssertionError得构造器参数

要在运行时启用断言,可以在启动JVM时使用-enableassertions或者-ea标记。要在运行时选择禁用断言,可以在启动JVM时使用-da或者-disableassertions标记。要在系统类中启用或禁用断言,可使用-esa或-dsa标记。还可以在包的基础上启用或者禁用断言。
注意:断言不应该以任何方式改变程序的状态。
简单的说,如果希望在不满足某些条件时阻止代码的执行,就可以考虑用断言来阻止它。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!