惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
aimingoo的专栏
aimingoo的专栏
博客园 - 叶小钗
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
The Cloudflare Blog
S
SegmentFault 最新的问题
小众软件
小众软件
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
The GitHub Blog
The GitHub Blog
量子位
H
Hackread – Cybersecurity News, Data Breaches, AI and More
V
V2EX
Martin Fowler
Martin Fowler
博客园 - 【当耐特】
J
Java Code Geeks
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
F
Fortinet All Blogs
Blog — PlanetScale
Blog — PlanetScale
Last Week in AI
Last Week in AI

博客园 - Bryan Wong

Pushlets的初始化陷阱 在Tomcat部署Solr 4.3 Spring Security如何防止会话固定攻击(session fixation attack) Jdk自带的定时任务TimerTask和ScheduledExecutorService及其在Spring中的集成 Lucene索引,查询及高亮显示 记录几个Json的lib 蛋疼的腾讯微博数据类型和API文档 语言检测工具language-detection 你所不知道的Quartz特性 Spring Data集成MongoDB访问 Jetty的jar包依赖关系图 CAPS & BHCA Java中的集合类图 下载SUSE Linux 10 sp1的经历好曲折 C#代码检查工具:stylecop 圈复杂度基础 Scrum——“鸡”和“猪”的寓言 无所不能的final关键字 不同于C#的Java值类型和String类型
使用java断言调测程序
Bryan Wong · 2010-04-11 · via 博客园 - Bryan Wong

断言是J2SE 1.4开始引入的,其语法如下

assert <逻辑表达式>

assert <逻辑表达式> : <信息表达式>

第一种语法,如果逻辑表达式判断false时将抛出AssertionError异常,第二种语法在抛出异常的同时还会打印信息表达式的值。

断言的编译

如果使用的是 J2SE 1.4,则必须告诉编译器需要使用断言,语法如下

javac -source 1.4 <源文件>

如果使用的是 JavaSE 5.0及其后续版本,则不需要任何特殊说明。而如果需要关闭断言,需要增加一项说明如下

javac -source 1.3 <源文件>

运行时启动断言

运行命令如下

java -ea <类名>

何时使用断言

断言的目的是为了检查程序逻辑的正确性,而不是为了实现逻辑,在运行时关闭断言如果影响到程序功能,则属于滥用断言。使用断言应该注意

1,断言表达式使用前后程序的状态不变。例如,不能在断言表达式中使用诸如“++”,“--”等影响程序运行状态的运算;

2,断言失败是程序逻辑错误引起的,应该对程序进行修改,而不应该对断言失败进行捕获处理;

3,断言检查只应在开发测试阶段使用,不应在正式运行环境使用断言。