断言是软件开发中一种常用的调试方式,在实现中,断言就是在程序中的一条语句,他对一个布尔表达式进行检查,一个正确的程序必须保证这个boolean表达式的值为true,若该值为false,则说明程序已经处于不正确的状态下,系统将给出警告并退出。如果断言失败则抛出AssertionError 异常,AssertionError 类继承自Error类,error类继承自Throwable类, Throwable类继承自object类。

断言一般有两种表示方式:

  1. assert   boolean表达式
  2. assert   boolean表达式:对象或基本类型

      基本类型包括boolean,char,double ,float,int,long

        由于正常发布的软件中,断言是不起作用的,因此断言不能用于代码逻辑,断言不应该以任何方式改变程序的状态。可以在预计正常情况下不会到达的任何位置上放置断言,断言可以用于验证传递给私有方法的参数。不过,断言不应应用于验证传递给公有方法的参数。因为不管是否启用了断言,公有方法都必须检查参数,不过既可以在公有方法中,也可以在非公有方法中利用断言测试后置条件(就是数据结构某操作运行后的结果)。 断言:当不满断言条件时,程序将会停止执行。断言的用处是快速暴露问题,有利于程序的调试。私有方法只有本类的方法才能调用,也就是说所有的调用都来自于“程序员你”。如果出现不满足断言的情况,说明你编程有错误。用断言来提示你正好。而公共方法是给外部人员调用的,即使出现不合法的参数,也应该用异常来解决。而不是用断言,断言是“不友好的”。如果用断言会导致程序中止,这是不可接受的。

      断言主要用于:(1)检查控制流(2)检查输入参数是否有效(3)检查函数结果是否有效(4)检查程序不变量。

       Java中的断言和C语言中的断言区别:(1)java中使用assert关键字实现断言,而C语言中使用库函数实现断言(2)C语言中断言在编译时候开启,而java中断言是在运行时候开启。