avatar

一条在知识海洋的咸鱼

这个家伙很懒,啥也没有留下😋

  • 首页
  • Linux
  • OCJP
  • Java核心技术卷
  • J2EE相关标准
  • 深入理解Java虚拟机
  • NIO与SOcket编程技术指南
  • Java多线程编程核心技术
  • Redis开发与运维
  • Spring Cloud Alibaba 微服务原理与实践
  • DevOps
  • Docker
  • MySQL必知必会
  • AI自学路线
  • Spring Boot 编程思想(核心篇)
主页 第二十章 断言
文章

第二十章 断言

发表于 2021-05-22 更新于 2026-06- 10
作者 Administrator
7~9 分钟 阅读

使用断言测试不变量

  • 使用断言
    • 开启断言
    • 注意点
  • 总结

使用断言

检查某些内容是否为真的语句,检测程序中的错误。

assert booleanExpression;

等价于

if(booleanExpressionIsFalse) {
     throw new AssertionError();
}

如果 booleanExpression 的计算结果为 FALSE,则会引发 java.lang.AssertionError 类型的异常(Error 的子类)

  • 断言语句也可以将 String 作为消息
assert booleanExpression: "Message about the error";

等价于

if(booleanExpressionIsFalse) {
     throw new AssertionError("Message about the error");
}

默认情况下断言是不启用的。在代码中使用断言,但是如果它们是禁用的,Java 会跳过它们

开启断言

断言是在cmd命令行中启用的

java –ea  MainClass
java –enableassertions MainClass

注意点

  • 如果启用断言并且布尔表达式为true,则不会发生任何事情。
  • 如果启用了断言,并且布尔表达式为false,则抛出AssertionError。
  • 如果断言被禁用,无论布尔表达式的结果如何,断言都将被忽略。
public TestAssertion {
     public static void main(String[] args) {
         // Parentheses are optional
        assert (args.length > 0) :
             "At least one argument is required";         System.out.println(args[0]);     }
}

断言可以帮助我们捕捉从程序中的假设中派生出来的一些错误。请注意,默认情况下它们不是启用的。它们并不是设计用来在生产环境中运行的,因此,最好使用常规异常。
断言更好地用于验证参数、属性、前置条件、后置条件、应用程序控制流(针对不应该达到的代码点) ,以及一般的错误检查,否则,当代码准备投入生产时,您将不得不对其进行注释或禁用。

总结

  • 断言是一种语句,用于检查某些内容是否正确,并帮助您检测程序中的错误。
  • assert语句具有以下语法:
    1.assert booleanExpression;
    2.assert booleanExpression: "Message about the error";
  • 如果assert语句的布尔表达式的计算结果为false,则程序将抛出java.lang.AssertionError并终止。
  • 默认情况下,断言被禁用。
OCJP
许可协议: 
分享

相关文章

9月 6, 2021

关于这篇OCP-Java专题说明

5月 28, 2021

三十章 本地化

通过使用 Locale 对象读取和设置 Locale。创建并读取属性文件。为每个区域设置构建资源包,并在应用程序中加载资源包。本地化设置语言环境本地化设计一个能够处理不同语言和地区的应用程序。最常见的是消息、日期和数字。java.util.LocaleLocale类基本上代表一种语言和一个国家获得机

5月 27, 2021

第二十九章 JDBC API

了解JDBC API 核心的接口,包括 Driver、 Connection、 Statement 和 ResultSet 接口及其与提供者实现的关系。使用 DriverManager 类(包括 JDBC URL)标识连接到数据库所需的组件。从数据库提交查询和读取结果,包括创建语句、返回结果集、遍历

下一篇

第二十一章 核心Date/Time类

上一篇

第十九章 Exceptions

最近更新

  • 55 异常兜底:工具失败、非法输出、空检索与超时
  • 54 Agent Memory:短期记忆、用户上下文与摘要
  • 53 Human-in-the-loop:让关键动作暂停、确认与恢复
  • 52 工单 Tool:字段校验、创建结果与失败补偿
  • 51 订单 Tool:Mock、鉴权、状态解析与脱敏

热门标签

java基础 微服务 maven Spring Tomcat DDD Linux Linux基础 SQL基础 数据结构算法

目录

©2026 一条在知识海洋的咸鱼. 保留部分权利。

使用 Halo 主题 Chirpy