在JDK1.4中增加了Assert的新功能,用于开始、调试时期的错误检测,它可以通过-ea 的JVM参数关闭,关闭以后对程序的性能没有任何影响。

最好的教程 请见:http://java.sun.com/j2se/1.4.2/docs/guide/lang/assert.html

简单总结下几点注意点

不要在public方法中使用assert来代替参数检查。公有方法的参数检查应该有该方法通过条件判断等方式完成,从而抛出理想的异常,而其只会抛出:AssertionError,对异常并不是很明确。AssertionError 继承自Error。

它的语法有两种:

assert Expression1

Expression1

为条件判断,当其为true时程序正常,为false时,程序抛出AssertError。

assert Expression1

: Expression2

:Expression

1

同上,

Expression2必须是有返回值的函数或者其它字符串、变量等。

3. 编译: javac -source 1.4 MyClass.java

启动: java -ea MyClass

Eclipse的话,需要在Run=>JVM Argements 中增加-ea参数

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

assert关键字语法很简单,有两种用法:

1、assert

如果为true,则程序继续执行。如果为false,则程序抛出AssertionError,并终止执行。

2、assert :

如果为true,则程序继续执行。如果为false,则程序抛出java.lang.AssertionError,并输入。

也就是你需要在执行java命令时加入参数-ea,如

java -ea xxx

现在来看,个人是不推荐使用的。

java assert函数_Java Assert 用法简介相关推荐

  1. MSSQL Sql加密函数 hashbytes 用法简介

    原文:MSSQL Sql加密函数 hashbytes 用法简介 转自:http://www.maomao365.com/?p=4732 一.mssql sql hashbytes 函数简介 hashb ...

  2. java assert函数_assert的用法

    在学习编程的过程当中,我们会经常遇到自己编写的程序不知道错在哪,更谈不上修改,这个时候assert就起到了很重要的作用. 什么是assert assert断言函数就是针对某一行代码进行测试,得到输出结 ...

  3. java lambda函数_Java SE 8新功能介绍:使用Lambda Expression进行函数式编程

    java lambda函数 " Java SE 8新功能浏览 "系列的这篇文章将深入了解Lambda表达式 . 我将向您展示Lambda表达式的几种不同用法. 它们都具有功能接口的 ...

  4. java 字符串函数_Java字符串函数– 25+必须知道方法

    java 字符串函数 Java字符串函数 (Java String Functions) Java String class has a lot of functions to manipulate ...

  5. java日期函数_JAVA 日期、时间函数大全(超全)

    实 习期间使用ExtJs做项目的时候需要获取上下班时间并进行上网访问记录的截取和判断,需要处理时间以及字符串与时间之间的转换.本想自作一篇关于时间的 博文,但发现java时间函数方式多变,不如上网查资 ...

  6. java虚拟函数_java实现多态中的虚函数相关概念

    本文转载自参考博客 1. Java虚函数 虚函数的存在是为了多态. C++中普通成员函数加上virtual关键字就成为虚函数 Java中其实没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑 ...

  7. java 虚函数_Java的虚方法

    虚方法出现在Java的多态特性中, 父类与子类之间的多态性,对父类的函数进行重新定义.如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding).在Java中,子类 ...

  8. java replaceall函数_JAVA中string.replace和string.replaceAll的区别及用法

    展开全部 JAVA中string.replace()和string.replaceAll()的区别及用法乍一看,字面上理解好像replace只替换第一个出现的字符(受javascript的影响),32 ...

  9. java this()函数_java中this关键字的三种用法

    this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针. this的用法在java中大体可以分为3种: 1.普通的直接引用,this相当于是指向当前对象本身. 2.形参与成员名字重 ...

最新文章

  1. 打开高效文本编辑之门_Linux awk之自定义变量与操作符
  2. centos 7 升级/安装 git 2.7.3
  3. mysql主从进行扩展_Mysql主从知识扩展部分1
  4. 外卖餐饮点餐系统,连锁餐饮,公众号小程序源码2.1.5
  5. python中ln怎么表示_Python math库 ln(x)运算的实现及原理
  6. simulink模块使用记录2-EnabledSubsystem/merge
  7. 是做生意还是做事业,这是一个问题。
  8. php选择版本,怎样选择PHP的版本
  9. python找出列表间隐含的关联关系以及重复模式
  10. 小黑T61P 挂了,显卡门,维修经历跟踪
  11. 【Go】Go语言中反射包的实现原理(The Laws of Reflection)
  12. ASP连接Oracle数据库简易DEMO完全案例
  13. 奇怪的消费者心理:看三个趣味经济学原理
  14. commons-math3-3.6.1-org.apache.commons.math3.analysis.function-包下的类(三)-中英对照文档及源码赏析
  15. 压缩WinSxS文件夹
  16. kengoro机器人哪儿有卖_日本东京大学创造出“骨格精奇”的机器人Kengoro 会流汗能做掌上压...
  17. 客户端+调用+matlab,基于web的android图像处理示范(Win7+Apache+PHP+Matlab+Android)
  18. AUTOCAD——图形单位与图形边界
  19. 投影仪硬件边缘融合服务器,带你了解投影融合的边缘融合显示技术
  20. [研究方向]什么是深度学习?它到底有多火?

热门文章

  1. 基于51单片机的智能计算器
  2. Nginx系列之负载均衡算法策略
  3. 微信创建二维码_如何创建二维码
  4. Rack-based applications
  5. 小程序生成带参数的二维码
  6. 电话呼叫转移的设置方法
  7. js html引入外部css文件,js中如何引入css文件?
  8. vue-cli项目引用外部CSS和JS
  9. 这就是传说中超难的N皇后?——详细图解!
  10. jstl escapeXml 属性设置