异常,不仅仅是程序运行状态的描述,还可以使得代码编写更加的规范
 
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. numpy协方差矩阵numpy.cov

    numpy.cov(m, y=None, rowvar=True, bias=False, ddof=None, fweights=None, aweights=None)[source] Estim ...

  2. Cloudstack云平台实践

    laaS平台的虚拟化 利用率高 资源整合 节约电能 节约空间 灾难恢复 CloudStack是一个开源的具有高可用性及扩展性的云计算平台.支持管理大部分主流的hypervisor,如KVM虚拟机,Xe ...

  3. Python:lambda表达式(匿名函数)

    lambda表达式: 通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数. 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便. 在Python中 ...

  4. Java不同压缩算法的性能比较 程序猿 2015-01-21 本文将会对常用的几个压缩算法的

    Java不同压缩算法的性能比较 程序猿 2015-01-21 本文将会对常用的几个压缩算法的

  5. JavaScript中的对象描述符(属性特性)

    我们先创建一个对象: var person = { name: "Nicholas", _job: "Software Engineer", sayName: ...

  6. 币安Binance API Websocket

    本文介绍币安Binance API Websocket General WSS information The base endpoint is: wss://stream.binance.com:9 ...

  7. js_加入收藏夹功能

    <script type="text/javascript">function addToFavorite(obj) {    var url = "http ...

  8. mysql 约束条件目录

    mysql 约束条件 mysql 约束条件 not null与default mysql 约束条件 unique key 唯一的键 mysql primary key 主键 mysql auto_in ...

  9. android studio 布局

    1) 可见(visible)XML文件:Android:visibility="visible"Java代码:view.setVisibility(View.VISIBLE); 2 ...

  10. HTML5-CSS3-JavaScript(2)

    我们就从HTML5的基础总结起.希望可以提高自身的基础. HTML5 新增的通用属性 1. contentEditable 属性 HTML5 为大部分HTML元素都增加了contentEditable ...