assert  是断言, 用的最多的就是测试了,譬如单元测试。

解决方案 »

  1.   

    工作第五年的表示没用过...就好比System.gc();工作中没有地方用到过...assert中文是断言,断言看作是异常处理的一种高级形式。
      

  2.   

    spring源码里用的比较多,比如利用cookie自动登录时,cookie保存了用户名,和密码,
    这个cookie就只有两个元素,
    我断言一下,如果取到的对应的cookie里的对象的元素不是两个,
    那么直接抛异常,或者不往下处理了。
      

  3.   

    assert关键字是Java断言,在eclipse中是变色的,和其它关键字一个色
    aseert应该是个操作符,和instanceof差不多,aseert接受一个运算结果是boolean的表达式
    据说是在JDK1.4以后才有的,所以编译时需要加 -source 1.4 来指定版本,本人zaieclipse中试的时候,使用的默认编译方式,可以生效,可能eclipse已经设定过。
    重点是运行时需要设置虚拟机参数 -ea 打开断言开关才能在运行时生效,否则虚拟机忽略断言语句可以在main方法中加assert false;
    断言开关打开的话,会出现Exception in thread "main" java.lang.AssertionError,
    没有打开就不报错。
      

  4.   

    就算写了也不一定会生效,eclipse默认assert功能就是关闭的。
      

  5.   

    assert 断言 除去楼上几位的说明之外 再补充一点 这个关键起到一个声明的作用 他强调这个函数绝对不会出现的状态和流程 用以将问题定位到其他的地方 比如说你的函数参数值接受的范围可能只是0到5 但是有人传了6 这是非法调用 但是错误并不在这个函数 正常流程不该发生这种情况 这种时候就应该设置个断言 并在开启断言进行开发的过程中及早发现那些违规的使用方式
      

  6.   

    语法:assert <boolean表达式>
    assert <boolean表达式> : <错误信息表达式>
    当boolean表达式为false时,抛出AssertError,程序终止运行。例子:
    public class Cloned {  
        public static void main(String[] args) {  
            System.out.println("classes");  
            try{  
                //when running as java -ea Cloned -5, it's supposed to throw AssertError;  
                assert (Integer.parseInt(args[0]) > 0):"assertTest";  
            }catch(Exception e){  
                //Exception fails to catch "AssertError"; so no chance to execute the following block;  
                System.out.println("catch exec..");  
            }  
            //finally will be always executed before main() is done.  
            //Once any exception is thrown out here, program terminates here...Hence no chance to throw assertError;  
            finally{  
                throw new IllegalArgumentException();  
            }  
        }  
      

  7.   

    在jkd1.4之后新增加了这个功能 具体来讲就是 预先制定一个结果 并认为这个结果是肯定正确的

    int i=0;
    ...
    具体其他代码
    .... 
    try{
     assert i>10 ; //认为在这里 i肯定必须大于10 
    }
    catch(Exception e){}
    如何使程序中定义的断言起作用
    在命令行执行的时候 加上 java -ea 参数  此时 如果发现断言错误 会发生ERROR 程序停止具体可以参考楼上的代码 写的非常好