码迷,mamicode.com
首页 > 其他好文 > 详细

异常处理规范

时间:2018-06-11 13:41:30      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:情况   result   run   这一   类型   存在   直接   恢复   nbsp   

1、 Throwable是Java中所有错误和异常的超类。 error是所有错误的超类,这些错误并不意味着需要被应用程序所捕获。捕获Throwable或Error也将捕获OutOfMemoryError和InternalError,应用程序不应尝试恢复这些错误。只能捕获异常及其子类。

2、 定义时区分unchecked / checked 异常,避免直接抛出new RuntimeException(),更不允许抛出Exception或者Throwable,应使用有业务含义的自定义异常。末尾贴上自定义的异常处理代码。

3、 不同的一场类型会影响业务走向,所以我一般都是在service这一层统一处理收敛异常。但是在有事务的情况下,我是会将异常抛出到控制层做处理的,不然可能会影响事务的回滚。总结就是:存在事务,抛到控制层用aop作统一处理,如果不存在事务,统一在service层处理,这样方便一些。

public class UserException extends RuntimeException{

         private String errorCode;

         private String errorMessage;

         private boolean forceCatch = false;

         public UserException(){

 

         }

         public UserException(String errorMessage){

                  super(errorMessage);

                  this.errorMessage = errorMessage;

         }

 

         public UserException(ResultEnum resultEnum){

                  super(resultEnum.getMessage());

                  this.errorCode = resultEnum.getCode();

                  this.errorMessage = resultEnum.getMessage();

         }

         public UserException(String errorCode,String errorMessage){

                  super(errorMessage);

                  this.errorCode = errorCode;

                  this.errorMessage = errorMessage;

         }

         public UserException(String errorMessage,Throwable throwable){

                  super(errorMessage,throwable);

                  this.errorMessage = errorMessage;

         }

         public UserException(String errorMessage,Throwable throwable,boolean forceCatch){

                  super(errorMessage,throwable);

                  this.errorMessage = errorMessage;

                  this.forceCatch = forceCatch;

         }

         public UserException(String errorCode,String errorMessage,Throwable throwable){

                  super(errorMessage,throwable);

                  this.errorCode = errorCode;

                  this.errorMessage = errorMessage;

         }

         public UserException(String errorCode,String errorMessage,Throwable throwable,boolean forceCatch){

                  super(errorMessage,throwable);

                  this.errorCode = errorCode;

                  this.errorMessage = errorMessage;

                  this.forceCatch = forceCatch;

         }

         public String getErrorCode() {

                  return errorCode;

         }

         public void setErrorCode(String errorCode) {

                  this.errorCode = errorCode;

         }

         public String getErrorMessage() {

                  return errorMessage;

         }

         public void setErrorMessage(String errorMessage) {

                  this.errorMessage = errorMessage;

         }

         public boolean isForceCatch() {

                  return forceCatch;

         }

         public void setForceCatch(boolean forceCatch) {

                  this.forceCatch = forceCatch;

         }

 

}

 

异常处理规范

标签:情况   result   run   这一   类型   存在   直接   恢复   nbsp   

原文地址:https://www.cnblogs.com/wanghaichao/p/9166385.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!