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

java assert处理异常及注意点

小妮浅浅

在讲到assert测试程序时,遇到错误就会抛出AssertionError,这时候有的人会想要解决这种报错情况。但其实这种错误是不能被更改的,所以在使用的时候要避免AssertionError的出现。下面我们就使用assert出现异常情况进行展示,然后进一步得出assert使用中需要注意的一些事项。

1.处理AssertionError

AssertionError类继承了Error类,而Error类本身继承了Throwable。这意味着AssertionError是一个非检查的异常(unchecked exception)。

Exception in thread "main" java.lang.AssertionError: Connection is null
        at com.baeldung.assertion.Assertion.setup(Assertion.java:15)
        at com.baeldung.assertion.Assertion.main(Assertion.java:10)

使用断言的方法不需要声明它们,而且进一步的调用代码不应尝试捕捉抛出的AssertionError。

AssertionErrors用于指出在应用程序中不可恢复的出错情况,因此不要试图处理它们或尝试恢复。

2.asser使用注意

1)assert关键字需要在运行时候显式开启才能生效,否则你的断言就没有任何意义。而现在主流的Java IDE工具默认都没有开启-ea断言检查功能。这就意味着你如果使用IDE工具编码,调试运行时候会有一定的麻烦。并且,对于Java Web应用,程序代码都是部署在容器里面,你没法直接去控制程序的运行,如果一定要开启-ea的开关,则需要更改Web容器的运行配置参数。这对程序的移 植和部署都带来很大的不便。

2)用assert代替if是陷阱之二。assert的判断和if语句差不多,但两者的作用有着本质的区别:assert关键字本意上是为测试 调试程序时使用的,但如果不小心用assert来控制了程序的业务流程,那在测试调试结束后去掉assert关键字就意味着修改了程序的正常的逻辑。

3)assert断言失败将面临程序的退出。这在一个生产环境下的应用是绝不能容忍的。一般都是通过异常处理来解决程序中潜在的错误。但是使用断言就很危险,一旦失败系统就挂了。

以上就是java assert处理异常及注意点的分析,我们使用assert是为了测试程序的异常,但这种异常出现后,并不能被恢复,这也是assertjava中使用不多的原因。

免费视频教程
本文原创发布python学习网,转载请注明出处,感谢您的尊重!
相关文章
 同步在java中的应用
 java阻塞和非阻塞的使用
 java Date类的使用方法
 java SimpleDateFormat转换方法
 java中SimpleDateFormat线程优化
 Calender在java中处理时间
 java中assert调用程序
相关视频章节
 网络爬虫
 云端部署Web应用程序视频
 Web应用框架Flask和文件模板
 Web应用程序开发概述
 继承和多态
作者信息
推荐视频
视频教程分类