技术文章 > java >  java基础 > 正文

java断言与异常区别

小妮浅浅

在调试代码时出现AssertionError,有的人会把它误解成异常,其实断言和异常是两个不同的概念。最明显的是断言在java中是被关闭的,需要手动开启,同时断言和异常的使用场景也有很大的区别。下面我们就断言的开启方法,以及使用断言环境的代码示例为大家带来展示,在其中找出与异常的区别。

1.断言需要开启

因为Java断言使用assert关键字,所以不需要导入库或包。

注意,在Java 1.4之前,使用单词“assert”来命名变量、方法等是完全合法的。在使用较旧的代码和较新的JVM版本时,这可能会造成命名冲突。

为了向后兼容性,JVM在默认情况下禁用断言验证。必须使用-enableassertions命令行参数或者它的简写-ea来显式地启用它们:

java -ea com.baeldung.assertion.Assertion

2.断言和异常使用场景的区别

检查先验条件使用断言,检查后验条件使用异常。

def read_file(file_path):
assert is_instance(file_path, str)

read_file函数在被调用执行后,依然需要满足一定条件,比如file_path所指定的文件需要是存在的,并且当前用户有权限读取该文件,这些条件称为后验条件,对于后验条件的检查,我们需要使用异常来处理。

def read_file(file_path):
    assert is_instance(file_path, str)
    if not check_exist(file_path):
        raise NotFoundError()
    if not has_privilege(file_path):
        raise PermissionError()

以上就是java断言与异常区别的两点介绍,相信大家已经能分清二者的不同之处。在使用环境上,注意检验条件的先后顺序即可分清。

免费视频教程
本文原创发布python学习网,转载请注明出处,感谢您的尊重!
相关文章
 java中assert调用程序
 java assert处理异常及注意点
 java中断言的两种形式
相关视频章节
 网络爬虫
 云端部署Web应用程序视频
 Web应用框架Flask和文件模板
 Web应用程序开发概述
 继承和多态
作者信息
推荐视频
视频教程分类