编程语言
首页 > 编程语言> > java自定义异常及异常的抛出

java自定义异常及异常的抛出

作者:互联网

java自定义异常及异常的抛出

 2119731621

在项目的开发过程中前后端一般会遇到很多的异常,这些异常的处理后端通常会通过throw出一个对象,前端再将接收到的异常对象code和message进行二次判断

或直接将message显示给用户,用户再去操作界面。

后端对于异常的定义及处理

一.首先定义一个返回的异常对象

public class BaseBusinessException extends RuntimeException {


private Integer code;

   private String message;

public BaseBusinessException(Integer code,String message) {
super(message);
this.code = code;
}

public Integer getCode() {
return code;
}

public void setCode(Integer code) {
this.code = code;
}
}
二.定义一个自定义的异常处理类,方便对各种类型的异常进行抛出。
/**
* 自定义异常处理类
* 针对不同的异常自定义不同的方法
* 环绕通知
* 切面:针对所有的controller中抛出的异常
* 若使用@ControllerAdvice,则不会自动转换为JSON格式
*/
@RestControllerAdvice
public class RestExceptionHandler {

/**
* 业务异常处理
* @param e
* @return ErrorInfo
*/
@ExceptionHandler({BaseBusinessException.class})
public ResponseEntity<ErrorInfo> businessExceptionHandler(HttpServletRequest request,BaseBusinessException e) throws BaseBusinessException {
return new ResponseEntity(new ErrorInfo(e.getCode(),e.getMessage()), HttpStatus.CONFLICT);
}

/**
* 业务异常处理
* @param e
* @return ErrorInfo
*/
@ExceptionHandler({AccessDeniedException.class})
public ResponseEntity<ErrorInfo> BusinessExceptionHandler(HttpServletRequest request, AccessDeniedException e) throws BaseBusinessException {
return new ResponseEntity(new ErrorInfo(401, e.getMessage()), HttpStatus.UNAUTHORIZED);
}

/**
* 只要抛出该类型异常,则由此方法处理
* 并由此方法响应出异常状态码及消息
* 如:RoleController.getRoleById(String id)方法
* @param request
* @param e
* @return
* @throws Exception
*/
@ExceptionHandler(value = Exception.class)
public ResponseEntity<ErrorInfo> handleException(HttpServletRequest request, Exception e) throws Exception {

ErrorInfo body = new ErrorInfo();
body.setCode(500);
body.setMessage(e.getMessage());

//可以根据公司情况不同,类似的异常可能需要不同的状态码
ResponseEntity<ErrorInfo> responseEntity = new ResponseEntity<ErrorInfo>(body, HttpStatus.INTERNAL_SERVER_ERROR);
return responseEntity;
}

最新幸运 飞艇56码规律公式实战计划走势分析资金分配技巧
最新幸运 飞艇78码滚雪球规律公式实战计划分析资金分配技巧
最新幸运 飞艇78码滚雪球走势技巧与盈利规律公式计划技巧
最新幸运 飞艇56码倍投走势技巧与盈利规律公式实战计划技巧
最新《幸运 飞艇78码滚雪球规律公式》如何把握盈利走势技巧
最新《幸运 飞艇56码倍投规律公式》如何把握盈利走势技巧
最新《幸运 飞艇56码走势实战计划分析》稳赢分配资金技巧
最新《幸运 飞艇78码滚雪球走势实战计划分析》稳赢资金技巧
最新《幸运 飞艇一些78码滚雪球必中玩法》实用走势技巧规律实战经验分享
北京 赛车与幸运 飞艇七八码滚雪球公式规律盈利技巧走势分析计划
北京 赛车与幸运 飞艇七八码滚雪球规律公式如何盈利计划分析技巧
北京 赛车与幸运 飞艇七八码滚雪球如何盈利计划走势技巧分析
北京 赛车与幸运 飞艇七八码公式滚雪球分析盈利计划走势玩法
北京 赛车与幸运 飞艇七八码滚雪球规律技巧稳赢公式计划
北京 赛车PK10幸运 飞艇七八码滚雪球公式稳赢计划走势分析技巧
北京 赛车PK10幸运 飞艇七八码滚雪球稳赢技巧实战规律分析计划
北京 赛车PK10幸运 飞艇七八码滚雪球如何稳赢计划技巧走势分析
北京 赛车幸运 飞艇五六码倍投公式盈利过程计划解说走势技巧
北京 赛车幸运 飞艇五六码倍投如何盈利计划实战技巧走势分析
北京 赛车幸运 飞艇五码六码走势规律稳赚技巧实战公式计划


细分飞 艇赛 车一分钟快 三如何快速稳定赚钱
细分飞 艇赛 车一分钟快 三高手稳赢秘籍
细分飞 艇赛 车一分钟快 三赢了30万稳赢秘籍
细分飞 艇赛 车一分钟快 三绝招稳赢秘籍
细分飞 艇赛 车一分钟快 三技巧稳赢秘籍
细分飞 艇赛 车一分钟快 三杀号稳赢秘籍
细分飞 艇赛 车一分钟快 三选号稳赢秘籍
细分飞 艇赛 车一分钟快 三遗漏稳赢秘籍
细分飞 艇赛 车一分钟快 三和值走势图稳赢秘籍
细分飞 艇赛 车一分钟快 三基本走势图稳赢秘籍
细分飞 艇赛 车一分钟快 三人工计划稳赢秘籍
细分飞 艇赛 车一分钟快 三软件计划稳赢秘籍
细分飞 艇赛 车一分钟快 三稳赢秘籍


独家解读《出几买几定位胆公式》效果收益极好的玩法技巧
大神揭秘《定位胆三把必中法》玩法分享给大家
高手揭秘《定位胆怎么买准确率高》分享给大家一起交流
独家解读《11选5任2神号期期必中》效果收益极好的技巧
独家讲解分析《组三组六 必中技巧》助你快速掌握
浅析最新五星组选60玩法介绍的做号方案
浅析最新四星稳定做号思路方法的做号方案,
讲解分析最稳定的《11选5任3必中计算方法》值得收藏
独家解读《追组六不亏方法》帮你度过难关
高手全面讲解《五星组60有什么规律》命中率极高
简单实用的《五星组选30怎么算中》值得借鉴
必备攻略之《后三大底稳定700刷不停》值得收藏
最强攻略分享《后三直选单式稳赚》效果极佳
最强攻略分享《后三直选单式稳赚》效果极佳
大师深度解析《后三组六复试杀号技巧》帮助提高命中
命中最高的《后三直选单式500注万能码》分享制胜玩法
重点考虑《后三直选单式600注》需要注意的细节
高手选取《四星6000注做号思路》一定不要盲目跟进
重点考虑《四星稳定做号思路方法》需要注意的细节
讲解分析最稳定的《后三直选缩水大底》值得收藏
高手全面讲解《后三单式5胆码做号》命中率极高
玩家总结《后三组六8码杀号公式》分析取胜窍门!-
独家解读《后三直选杀号最新公式》帮你度过难关
独家解读《后三直选杀号最新公式》帮你度过难关
最值得收藏的《五星二码什么意思》帮助提高胜率
最值得收藏的《五星二码什么意思》帮助提高胜率
重点考虑《四星稳定做号思路方法》需要注意的细节
讲解分析最稳定的《后三直选缩水大底》值得收藏
高手全面讲解《后三单式5胆码做号》命中率极高
玩家总结《后三组六8码杀号公式》分析取胜窍门!-
独家解读《后三直选杀号最新公式》帮你度过难关
独家解读《后三直选杀号最新公式》帮你度过难关
最值得收藏的《五星二码什么意思》帮助提高胜率
最值得收藏的《五星二码什么意思》帮助提高胜率
独家讲解分析《五星组60和120对打》助你快速掌握
独家讲解分析《五星组60和120对打》助你快速掌握
高手全面讲解《五星组60组120如何判断》命中率极高
精准分析《怎么判断五星组选60》不可错过的细节
精准分析《怎么判断五星组选60》不可错过的细节
精准分析《怎么判断五星组选60》不可错过的细节
精准分析《怎么判断五星组选60》不可错过的细节
资深玩家解读《后三直选单式600注》玩法和技巧
资深玩家解读《后三直选单式600注》玩法和技巧
高手全面讲解《猜大小单双有什么诀窍》命中率极高
独家讲解分析《后三杀2个条件650注》助你快速掌握-
高手讲解《后三组六是什么意思》易上手玩法技巧
最新评分最高的《11选5任二怎么盈利计划》攻略分享
高手全面讲解《五星不定位胆二码秘诀》命中率极高


}
三.在业务处理过程中(一般是Service类中),遇到已知的,需要向客户端展示的业务异常,通过throw一个自己定义的异常对象抛出异常。
public void updatePassword(String userCode,String oldPassword,String newPassword,String newNextPassword){
Employee employee=employeeRepository.findEmployeeByCode(userCode);
if(null == employee){
throw new BaseBusinessException(409,"用户不存在");
}
if(!newPassword.equals(newNextPassword)){
throw new BaseBusinessException(409,"两次新密码输入不一致");
}

}
四,在异常的对象返回值中code一般是根据各公司不同的使用情况进行综合定义,后端只需调用即可。
 














标签:java,技巧,自定义,艇赛,直选,稳赢,幸运,异常,飞艇
来源: https://www.cnblogs.com/addsda/p/12074792.html