异常,不仅仅是程序运行状态的描述,还可以使得代码编写更加的规范
 
1、自定义异常:FieldValueInvalidException
package com.geniuses.sewage_zero_straight.exception;

import com.geniuses.sewage_zero_straight.enums.CodeAndMsgEnum;

/**
 * 字段取值无效异常
 */
public class FieldValueInvalidException extends RuntimeException {     //CodeAndMsgEnum 定义了一个枚举类
    public FieldValueInvalidException(CodeAndMsgEnum codeAndMsgEnum){
        super(codeAndMsgEnum.getMsg());
        this.code = codeAndMsgEnum.getCode();
        this.msg = codeAndMsgEnum.getMsg();
    }     public FieldValueInvalidException(int code, String msg){
        this.code = code;
        this.msg = msg;
    }     private int code;
    private String msg;     public int getCode() {
        return code;
    }     public void setCode(int code) {
        this.code = code;
    }     public String getMsg() {
        return msg;
    }     public void setMsg(String msg) {
        this.msg = msg;
    }
}

2、定义异常处理器

package com.geniuses.sewage_zero_straight.advice;

import com.geniuses.sewage_zero_straight.bean.view.ResultView;
import com.geniuses.sewage_zero_straight.exception.FieldValueInvalidException;
import com.geniuses.sewage_zero_straight.exception.ParamNotExistException;
import com.geniuses.sewage_zero_straight.exception.ResourceNotExistException;
import com.geniuses.sewage_zero_straight.util.ResultViewUtil;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody; /**
* controller错误处理增强器
*/
@org.springframework.web.bind.annotation.ControllerAdvice
public class ControllerAdvice { /**
* 全局ParamNotExistException异常处理器
* @param paramNotExistException
* @return
*/
@ResponseBody
@ExceptionHandler(value = ParamNotExistException.class)
public ResultView paramNotExistExceptionHandler(ParamNotExistException paramNotExistException){
return ResultViewUtil.init(paramNotExistException.getCode(), paramNotExistException.getMsg(), null);
} /**
* 全局ResourceNotExistException异常处理器
* @param resourceNotExistException
* @return
*/
@ResponseBody
@ExceptionHandler(value = ResourceNotExistException.class)
public ResultView resourceNotExistException(ResourceNotExistException resourceNotExistException){
return ResultViewUtil.init(resourceNotExistException.getCode(), resourceNotExistException.getMsg(), null);
} /**
* 全局FieldValueInvalidException异常处理器
* @param fieldValueInvalidException
* @return
*/
@ResponseBody
@ExceptionHandler(value = FieldValueInvalidException.class)
public ResultView fieldValueInvalidException(FieldValueInvalidException fieldValueInvalidException){
return ResultViewUtil.init(fieldValueInvalidException.getCode(), fieldValueInvalidException.getMsg(), null);
}
}

SpringBoot之统一异常处理的更多相关文章

  1. Springboot项目统一异常处理

    Springboot项目统一异常处理 一.接口返回值封装 1. 定义Result对象,作为通用返回结果封装 2. 定义CodeMsg对象,作为通用状态码和消息封装 二.定义全局异常类 三.定义异常处理 ...

  2. SpringBoot 统一异常处理

    统一异常处理: @ControllerAdvice public class GlobalExceptionHandler { private Logger logger = LoggerFactor ...

  3. 【异常处理】Springboot对Controller层方法进行统一异常处理

    Controller层方法,进行统一异常处理 提供两种不同的方案,如下: 方案1:使用 @@ControllerAdvice (或@RestControllerAdvice), @ExceptionH ...

  4. spring 或 springboot统一异常处理

    spring 或 springboot统一异常处理https://blog.csdn.net/xzmeasy/article/details/76150370 一,本文介绍spring MVC的自定义 ...

  5. 配置springboot在访问404时自定义返回结果以及统一异常处理

    在搭建项目框架的时候用的是springboot,想统一处理异常,但是发现404的错误总是捕捉不到,总是返回的是springBoot自带的错误结果信息. 如下是springBoot自带的错误结果信息: ...

  6. springboot返回统一接口与统一异常处理

    springboot返回统一接口与统一异常处理 编写人员:yls 编写时间:2019-9-19 0001-springboot返回统一接口与统一异常处理 简介 创建统一的返回格式 Result 封装统 ...

  7. SpringBoot小技巧:统一异常处理

    SpringBoot小技巧:统一异常处理 情景描述 对于接口的定义,我们通常会有一个固定的格式,比如: 但是调用方在请求我们的API时把接口地址写错了,就会得到一个404错误,且不同于我们定义的数据格 ...

  8. springboot中web应用的统一异常处理

    在web应用中,请求处理过程中发生异常是非常常见的情况.springboot为我们提供了一个默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局的错误页面用来展示异 ...

  9. SpringBoot统一异常处理后TX-LCN分布式事务无法捕获异常进行回滚

    通常我们使用SpringBoot都会进行统一异常处理,例如写一个BaseController,在BaseController里进行统一异常处理,然后其他的Controller都继承BaseContro ...

随机推荐

  1. [转]理解Linux的处理器负载均值

    [转自]http://www.mike.org.cn/articles/understanding-of-linux-processor-load-average/ 你可能对于Linux的负载均值(l ...

  2. hdu 6395Sequence【矩阵快速幂】【分块】

    Sequence Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total ...

  3. 2017年TOP100summit开幕在即, 15位大咖担任联席主席甄选最值得学习的100个研发案例

    从万维网到物联网,从信息传播到人工智能,20年间软件研发行业趋势发生了翻天覆地的变化.大数据.云计算.AI等新兴领域逐渐改变我们的生活方式,Devops.容器.深度学习.敏捷等技术方式和工作理念对软件 ...

  4. Java Eclipse编译后产生的字节码文件,用DOS命令符怎么打开

    在很多初学者刚刚接触eclipse的时候,写完一个代码文件.例如 Demo.java 通过run as a java application生成之后,会产生一个Demo.class. Demo.cla ...

  5. 没有动态库链接:可执行的文件大小一个就有几百兆 Dynamic-Link Libraries

    dynamic link library Dynamic-Link Libraries (Windows) https://msdn.microsoft.com/en-us/library/windo ...

  6. Node.js(daemon),tweak(debug ES)/nodejs forever,supervisor--express

    http://www.cnblogs.com/Darren_code/p/node_express.html express -e nodejs-product sudo npm install fo ...

  7. IDEA的快捷键和相关设置

      快捷键 Shift + Shift: 查找一切 Alt + /: 代码提示(需要修改) Ctrl + Alt + F12: 打开文件所在磁盘位置 Alt + F12: 打开终端 Alt + Ins ...

  8. 【Pyton】【小甲鱼】类和对象

    一.类 定义一个类,例子如下: class Turtle: #定义一个名为Turtle的类,Python中类型约定以大写字母开头 #属性 color='green' weight=10 legs=4 ...

  9. 10 ref 和 out 之间的差别

    (1) 两者都是按地址传递的,使用后都将改变原来的数值 (2) ref传进去的參数必须在调用前初始化,out不必 (3) ref传进去的參数在函数内部能够直接使用,而out不可 (4) ref传进去的 ...

  10. string、const char*、 char* 、char[]相互转换(待整理)

    string.const char*. char* .char[]相互转换(全) https://blog.csdn.net/rongrongyaofeiqi/article/details/5244 ...