java assert处理异常的方法及注意点

本教程操作环境:windows7系统、java10版,DELL G3电脑。

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是为了测试程序的异常,但这种异常出现后,并不能被恢复,这也是assert在java中使用不多的原因。

本教程操作环境:windows7系统、java10版,DELL G3电脑。1.断言的使用断言是作为一种调试工具被发明出来的,用来检查那些“代码写对了就肯定成立”的条件。例如我们要断言一个变量a必须要大于2,就可 ...