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

推荐订阅源

T
Tenable Blog
Last Week in AI
Last Week in AI
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
H
Help Net Security
F
Fortinet All Blogs
MyScale Blog
MyScale Blog
宝玉的分享
宝玉的分享
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 司徒正美
量子位
N
Netflix TechBlog - Medium
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
Recorded Future
Recorded Future
博客园 - 三生石上(FineUI控件)
Vercel News
Vercel News
aimingoo的专栏
aimingoo的专栏
I
InfoQ
Microsoft Security Blog
Microsoft Security Blog
Scott Helme
Scott Helme
The Last Watchdog
The Last Watchdog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
AI
AI
WordPress大学
WordPress大学
Security Archives - TechRepublic
Security Archives - TechRepublic
Google Online Security Blog
Google Online Security Blog
U
Unit 42
V2EX - 技术
V2EX - 技术
MongoDB | Blog
MongoDB | Blog
Schneier on Security
Schneier on Security
博客园 - Franky
H
Heimdal Security Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Jina AI
Jina AI
W
WeLiveSecurity
P
Privacy & Cybersecurity Law Blog
Cloudbric
Cloudbric
B
Blog RSS Feed
N
News | PayPal Newsroom
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
I
Intezer
Hacker News - Newest:
Hacker News - Newest: "LLM"
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园_首页
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
雷峰网
雷峰网

博客园 - 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,断言检查只应在开发测试阶段使用,不应在正式运行环境使用断言。