Spring boot 自定义统一异常处理(以及规范响应格式)
来源:互联网 发布:淘宝买的固话办信用卡 编辑:程序博客网 时间:2024/05/30 12:29
代码:
ResultDTO.java
public class ResultDTO<T> { private String resultCode;//结果编码 private String resultMsg;//结果信息 private T result;//结果内容 public String getResultCode() { return resultCode; } public void setResultCode(String resultCode) { this.resultCode = resultCode; } public String getResultMsg() { return resultMsg; } public void setResultMsg(String resultMsg) { this.resultMsg = resultMsg; } public T getResult() { return result; } public void setResult(T result) { this.result = result; }}
ResultEnum.java
public enum ResultEnum { //********** 异常 ************ CODE_800000("800000", "系统异常!"), CODE_800002("800002", "参数处理异常!"), CODE_800003("800003", "业务系统调用异常!"), //********** 失败 ************ CODE_800001("800010", "参数校验失败!"), CODE_800010("800011", "业务系统调用失败!"), //********** 成功 ************ CODE_9999("9999", "业务系统调用成功!"), CODE_999999("999999", "交易成功!"), ; private String resultCode;//结果编码 private String resultMsg;//结果信息 ResultEnum(String code, String msg) { this.resultCode = code; this.resultMsg = msg; } public String getResultCode() { return resultCode; } public String getResultMsg() { return resultMsg; }}
HandleException.java
import com.paic.icore.openapi_ui.common.enums.ResultEnum;public class HandleException extends RuntimeException{ private static final long serialVersionUID = 4474665452231795065L; private String code; public String getCode() { return code; } public void setCode(String code) { this.code = code; } public HandleException(ResultEnum resultEnum, String detailMsg) { super(resultEnum.getResultMsg() + detailMsg); this.code = resultEnum.getResultCode(); }}
ResultUtil.java
import com.paic.icore.openapi_ui.common.domain.ResultDTO;public class ResultUtil { @SuppressWarnings({ "rawtypes", "unchecked" }) public static ResultDTO result(String resultCode, String resultMsg, Object result) { ResultDTO resultDTO = new ResultDTO(); resultDTO.setResultCode(resultCode); resultDTO.setResultMsg(resultMsg); resultDTO.setResult(result); return resultDTO; }}
验证:
TestException.java
import java.util.HashMap;import java.util.Map;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.alibaba.fastjson.JSONObject;import com.paic.icore.openapi_ui.common.Exception.HandleException;import com.paic.icore.openapi_ui.common.domain.ResultDTO;import com.paic.icore.openapi_ui.common.enums.ResultEnum;import com.paic.icore.openapi_ui.common.utils.ResultUtil;public class TestException { private static final Logger logger = LoggerFactory.getLogger(TestException.class); @SuppressWarnings("rawtypes") public static void main(String[] args) { ResultDTO resultDTO = null; try { test(); logger.info("交易成功!"); Map<String, Object> successMap = new HashMap<String, Object>(); successMap.put("policyNo", "1234567890001"); resultDTO = ResultUtil.result(ResultEnum.CODE_999999.getResultCode(),ResultEnum.CODE_999999.getResultMsg(), successMap); } catch (HandleException e) { logger.error("抛出HandleException异常啦!", e); resultDTO = ResultUtil.result(e.getCode(), e.getMessage(), null); } catch (Exception e) { logger.error("抛出Exception异常啦!", e); resultDTO = ResultUtil.result(ResultEnum.CODE_800000.getResultCode(), ResultEnum.CODE_800000.getResultMsg(), null); } logger.info("出参:"+JSONObject.toJSONString(resultDTO)); } private static void test() throws HandleException { //验证Exception// String str = null;// str.toString(); //验证HandleException throw new HandleException(ResultEnum.CODE_800001, "入参不可为空!"); //验证成功情况// logger.info("逻辑处理成功成功!"); }}
验证结果:
出参:{“resultCode”:”800010”,”resultMsg”:”参数校验失败!入参不可为空!”}
注意:
代码编写的时候最好注意一下层级结构(便于后期维护和统一管理,层级也更清晰)
阅读全文
0 0
- Spring boot 自定义统一异常处理(以及规范响应格式)
- 规范响应格式以及统一异常处理
- Spring-Boot 统一异常处理
- Spring Boot 异常统一处理
- Spring boot统一异常处理
- java里面的运行异常与普通异常的区别以及spring boot统一异常处理
- Spring Boot(四)通用CRUD案例、异常统一处理
- spring boot基础之统一异常处理(小demo)
- spring boot 教程(四) 统一异常处理
- spring boot学习(八)---统一异常处理
- spring boot统一处理结果(含异常)
- spring boot之统一错误异常处理
- Spring Boot 统一异常处理的案例
- spring boot AOP和spring boot统一异常处理
- Spring MVC 全局异常处理-RESTAPI接口返回统一JSON格式-自定义异常处理--404异常捕捉
- Spring Boot -- 全局异常处理之REST API 的自定义错误响应信息
- Spring MVC异常统一处理(包括普通请求异常以及ajax请求异常)
- Spring Boot中Web应用的统一异常处理
- Win10 磁盘占用100%的解决方案
- 已解决canvas画图模糊的问题
- Jacoco覆盖率信息收集1
- 需求分析与系统设计
- 检测网站是否开启SSH服务
- Spring boot 自定义统一异常处理(以及规范响应格式)
- 正则表达式的经典实例
- python的list和javascript的array的方法
- 操作符简述
- JAVA中如何判断文件或文件夹是否存在
- springboot入门 整合ssm框架
- GO学习之路(二)Go for win10 IDE环境的安装
- TP5备份还原Mysql
- Cocos2dx三种定时器的使用