`
hbkh2000
  • 浏览: 197800 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

什么时候用assert

 
阅读更多

什么时候用assert。    
  断言是一个包含布尔表达式的语句,在执行这个语句时假定该表达式为   true。如果表达式计算为   false,那么系统会报告一个   Assertionerror。它用于调试目的:    
  assert(a   >   0);   //   throws   an   Assertionerror   if   a   <=   0    
  断言可以有两种形式:    
  assert   Expression1   ;    
  assert   Expression1   :   Expression2   ;    
  Expression1   应该总是产生一个布尔值。    
  Expression2   可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的   String   消息。    
  断言在默认情况下是禁用的。要在编译时启用断言,需要使用   source   1.4   标记:    
  javac   -source   1.4   Test.java    
  要在运行时启用断言,可使用   -enableassertions   或者   -ea   标记。    
  要在运行时选择禁用断言,可使用   -da   或者   -disableassertions   标记。    
  要系统类中启用断言,可使用   -esa   或者   -dsa   标记。还可以在包的基础上启用或者禁用断言。    
  可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过,断言不应该用于验证传递给公有方法的参数,因为不管是否启用了断言,公有方法都必须检查其参数。不过,既可以在公有方法中,也可以在非公有方法中利用断言测试后置条件。另外,断言不应该以任何方式改变程序的状态。    

分享到:
评论

相关推荐

    VC中ASSERT的用法

    ASSERT( pcage!= NULL ) ...就是说Debug(调试)的时候,ASSERT( *******) 这句要运行, 但是到了release的时候,ASSERT( *******) 这句就忽略不运行, 作检查用,release时不运行,是为了提高速度。

    python assert的用处示例详解

    使用assert断言是学习python一个非常好的习惯,python assert 断言句语格式及用法很简单。在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件时就崩溃,这时候就需要...

    Java面试32问

    第一,谈谈final, finally, finalize的区别。 第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements... 第七,什么时候用assert. 第八,GC是什么? 为什么要有GC?

    Java陷阱之assert关键字

     在Java中,assert关键字是从JAVA SE 1.4 引入的,为了避免和老版本的Java代码中使用了assert关键字导致错误,Java在执行的时候默认是不启动断言检查的(这个时候,所有的断言语句都将忽略!),如果要开启断言...

    abstract class和interface有什么区别?

    Static Nested Class 和 Inner Class的不同。 Static Nested Class是被声明为静态(static) 的内部类,它可以不依赖于外部类实例被实例化。而通 常的内部类需要在外部类实例化后才能实例化...26、什么时候用assert。

    Java程序员面试题及解答

    第一,谈谈final, finally, finalize的区别。  第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)... 第七,什么时候用assert.  第八,GC是什么? 为什么要有GC?............................

    java面试题

    第七,什么时候用assert. 第八,GC是什么? 为什么要有GC? 第九,String s = new String("xyz");创建了几个String Object? 第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

    变态JAVA程序员面试32问

    经典JAVA面试问题与答案 第一,谈谈 final,finally,finalize的区别。 第二,AnonymousInnerClass(匿名内部类)是否可以 extends(继承)其它类,... 第七,什么时候用assert. ........ ........ ........ ........

    java_ms.rar_Math Class_java collection

     第七,什么时候用assert。  API级的技术人员有可能会问这个。   第八,GC是什么? 为什么要有GC?  基础。   第九,String s = new String("xyz") 创建了几个String Object?   第十,Math.round(11.5)等於...

    java面试笔试题大汇总

     第七,什么时候用assert。  API级的技术人员有可能会问这个。   第八,GC是什么? 为什么要有GC?  基础。   第九,String s = new String("xyz");创建了几个String Object?   第十,Math.round(11.5...

    java各大软件公司的面试题的集和

    第七,什么时候用assert。 API级的技术人员有可能会问这个。 第八,GC是什么? 为什么要有GC? 基础。 第九,String s = new String("xyz");创建了几个String Object? 第十,Math.round(11.5)等於...

    ns3 assert failed. cond=”uid != 0″, msg=”Assert in TypeId::LookupByName: xxx not found”, file=../src

    ns3中在使用.waf –run xxx时候出现 assert failed. cond=”uid != 0″, msg=”Assert in TypeId::LookupByName: sender not found”, file=../src/core/model/type-id.cc, line=828 terminate called without an ...

    java面试题及答案.doc

    11. 什么时候用assert。 试给出例子 12. forward 和redirect的区别 13. GC是什么? 为什么要有GC? 14. short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 15. Math.round(11.5)等於多少? ...

    变态级JAVA程序员面试32问

     第七,什么时候用assert.  第八,GC是什么? 为什么要有GC?  第九,String s = new String("xyz");创建了几个String Object?  第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?  ...

    java面试题大全-基础方面

    1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × ...6、什么时候用assert

    Python断言assert的用法代码解析

    这时候断言assert 就显得非常有用。 python assert断言是声明布尔值必须为真的判定,如果发生异常就说明表达式为假。 可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。 assert...

    java面试宝典2012版.pdf

    Java面试宝典2012版 一. Java基础部分 1、一个".java"源文件中是否可以包括...80、什么时候用assert。 81、java中会存在内存泄漏吗,请简单描述。 82、能不能自己写个类,也叫java.lang.String? 83. Java代码查错

    java基础题 很全面

    18. 什么时候用assert。 9 19. GC是什么? 为什么要有GC? 9 20. short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 10 21. Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 10 22. String...

    JAVA笔试题集锦(1-30)基础部分

    6、什么时候用assert 答:assertion (断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个 boolean表达式进行检查,一个正确程序必须保证...

Global site tag (gtag.js) - Google Analytics