一.简介
在程序开发中,我们会遇到各种异常的发生,对于Java开发框架,一共分为两种检查异常和运行时异常。
检查异常(checked exception)
有可能是程序的业务逻辑异常,这种异常一般都是开发人员自定义的、知道什么时候会抛出什么异常并进行捕捉处理;
也可以是系统的异常,不捕捉编译不会通过,如 IOException、SQLException、ClassNotFoundException , 这种是必须要捕捉的并且大多都是继承Exception。
运行时异常
一般都是系统抛出来的异常,这种异常不捕捉处理也不会报编译错误,如NullPointerException,ClassCastException。运行异常都是继承至RuntimeException。不管是检查异常还是运行时异常都是继承至Exception。
系统错误Error
这种异常是系统出现了故障抛出来的不能捕捉,如OutOfMemoryError。Exception和Error都是继承至Throwable。
二.异常处理格式
了解了java的异常体系后,我们设计一下web框架的异常处理格式。在以往EJB时代的J2ee系统,一般是标准的三层架构:web层、业务逻辑层、数据访问层,并且每一层都分别部署在不同的机器集群中。这样我们的异常一般分为三个,WebException、BizException、DAOException分别映射到web层、业务逻辑层、数据访问层。并且这些异常都要设计的串行化可以跨机器传递生成异常链。这样的好处是看到异常链知道从哪儿抛出来的错误,比较清晰明了。
注意:系统异常需要记录log。
demo如下:
if (CollectionUtil.isEmpty(mLifePayOrderVs)) {
throw new BizException(ErrorMessage.NOT_EXSIT);
}