前情回顾:
- 【2023,学点儿新Java-25】如何解决浮点计算存在误差:strictfp | 如何保护敏感信息,提高程序的可靠性和安全性:transient | 附:Java异常处理关键字介绍
- 【2023,学点儿新Java-24】abstract修饰类、方法 | synchronized同步锁 | volatile修饰成员变量 | 如何保证变量在多线程中的可见性?| 如何保证线程安全?
- 【2023,学点儿新Java-23】初步了解Java中的修饰符:static及其作用、native特性、final的理解
- …
- 更多Java系列文章,可参阅博主主页哦!
我们抬头便看到星光,星星却穿越了万年.
🎯作者主页: 追光者♂🔥
🌸个人简介:
💖[1] 计算机专业硕士研究生💖
🌟[2] 2022年度博客之星人工智能领域TOP4🌟
🏅[3] 阿里云社区特邀专家博主🏅
🏆[4] CSDN-人工智能领域优质创作者🏆
📝[5] 预期2023年10月份 · 准CSDN博客专家📝
- 无限进步,一起追光!!!
🍎感谢大家 点赞👍 收藏⭐ 留言📝!!!
🌿在此前的系列Java文章中,我们已经基本了解了Java中的一些关键字,今天让我们继续了解一些Java关键字吧!本篇暂时先介绍assert——断言,来看一下assert关键字在Java中究竟起了怎样的作用。为了便于大家理解,也附上了简明的实例。
🕝目录
- 🍄assert:断言
- 🥝1.1 基本描述,简明语法格式
- 🥝1.2 进一步介绍
🍄assert:断言
🥝1.1 基本描述,简明语法格式
如果它断言的表达式为false
,将会抛出java.lang.AssertionError
对象。
语法格式:
assert 布尔表达式;
或
assert 布尔表达式 : "错误信息";
此外需注意:要开启断言功能,在eclipse中需要加JVM参数 -ea
,如下图,了解即可。
一个 【远古的 ~】 简单的示例:
public class TestDemo {
public static void main(String[] args) {
int a = 1;
int b = 2;
assert a/b == 0.5 :"结果不正确";
}
}
🥝1.2 进一步介绍
在Java中,assert
关键字用于添加断言(Assertion),用于在程序中进行简单的测试和调试。它可以 用来验证 程序中的某个条件是否满足,如果条件不满足,则会抛出一个AssertionError
异常。
assert 语句的两种形式:
-
简单形式:
assert condition
;
如果condition为假(即false
),会抛出AssertionError。 -
带有错误消息的形式:
assert condition : errorMessage;
如果condition为假,会抛出一个带有errorMessage
的AssertionError
。
需要注意的是,默认情况下,Java虚拟机会 禁用assert语句的执行。如果想要启用assert语句,需要在运行Java程序时加上-ea
或-enableassertions
选项。
请看一个示例代码,演示了assert关键字的用法:
public class AssertExample {
public static void main(String[] args) {
int x = 10;
// 简单断言,验证x是否大于等于0
assert x >= 0;
// 带错误消息的断言,验证x是否为正数
assert x > 0 : "x must be positive";
System.out.println("Program execution continues after asserts");
}
}
在上面这个示例中,定义了一个AssertExample
类,其中main()方法包含了断言的使用。
-
首先,我们使用 简单断言 来验证x是否大于等于0。如果断言条件为假,程序会抛出
AssertionError
,并结束执行。 -
然后,我们使用 带错误消息的断言 来验证x是否为正数。如果断言条件为假,会抛出一个带有错误消息"x must be positive"的AssertionError。
-
最后,无论断言是否为真,程序都会继续执行,并输出"Program execution continues after asserts"。
要启用assert语句的执行,可以通过以下命令 来运行示例代码:
java -ea AssertExample
这将使用-ea
选项来启用断言。如果断言条件不满足,会抛出相应的异常。如果不使用-ea选项,则断言语句将被忽略执行。
另外,当使用assert语句时,可以在断言条件中 使用任何布尔表达式。如果断言条件为真,则程序继续执行。否则,会抛出AssertionError异常,并且程序的执行会中断。
以下是一些更详细的示例代码,展示了assert语句的不同用法:
public class AssertionExample {
public static void main(String[] args) {
// 验证数组长度不为零
int[] numbers = {1, 2, 3, 4, 5};
assert numbers.length != 0 : "Array is empty";
// 验证字符串不为空
String message = "Hello World";
assert message != null && !message.isEmpty() : "String is empty";
// 验证方法的返回值
int result = divide(10, 0);
assert result != -1 : "Cannot divide by zero";
}
public static int divide(int dividend, int divisor) {
assert divisor != 0 : "Divisor cannot be zero";
if (divisor == 0) {
return -1;
}
return dividend / divisor;
}
}
在这个示例中,我们首先验证了一个数组的长度是否不为零。如果数组长度为零,则会抛出一个错误消息"Array is empty
"的AssertionError。接下来,我们验证了一个字符串是否不为空。如果字符串为空,则会抛出错误消息"String is empty
"的AssertionError。
最后,定义了一个divide()方法,用于除法运算。在方法体的开头,我们使用了一个断言 来验证除数是否不为零。如果除数为零,则会抛出 一个带有错误消息"
Divisor cannot be zero
"的AssertionError。在这里,断言的主要目的是在代码逻辑错误的情况下提供早期诊断。
在编写程序时,使用assert关键字 可以帮助我们确保代码的正确性,并提供错误消息 以便快速诊断问题。
然而,应该注意的是,在正式发布的代码中,断言可能会被禁用或忽略掉。因此,assert语句不应该 用于处理预期可能发生的错误 或异常情况,而是更适用于调试和测试阶段。
持续更新 ing!!!
欢迎关注,第一时间获取更多干货文章!!!
🍒 热门专栏推荐:
- 🥇Python&AI专栏:【Python从入门到人工智能】
- 🥈前端专栏:【前端之梦~代码之美(H5+CSS3+JS.】
- 🥉文献精读&项目专栏:【小小的项目 (实战+案例)】
- 🍎C语言/C++专栏:【C语言、C++ 百宝书】(实例+解析)
- 🍏Java系列(Java基础/进阶/Spring系列/Java软件设计模式等)
- 🌞问题解决专栏:【工具、技巧、解决办法】
- 📝 加入Community 一起追光:追光者♂社区
持续创作优质好文ing…✍✍✍
记得一键三连哦!!!
求关注!求点赞!求个收藏啦!