异常,不仅仅是程序运行状态的描述,还可以使得代码编写更加的规范
 
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. 微信 获取wx.config 参数 基类

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...

  2. Java-查询已创建了多少个对象

    //信1603 //查询创建了多少个对象//2017.10.19public class Lei {//记录对象个数 ;//生成一个对象就自加加 public Lei() { x++; }public ...

  3. Git之远程仓库

    1,注册账号 登录https://github.com注册一个账号 2,上传公钥 本地CentOS使用命令 ssh-keygen -t rsa生成秘钥 复制秘钥输入到github网站 3,新建仓库 4 ...

  4. Solr学习笔记之问题汇总

    一. 问题描述:Solr在建立索引时候出现如下错误:org.apache.solr.common.SolrException: Document [null] missing required fie ...

  5. numpy.ndarray的赋值操作

    mat=zeros((3,4)) #生成一个3行4列全部元素为0的矩阵 mat[1,:]=111 #从第1行第0列开始,一直到最后一列,赋值为1,效果与mat[1,0:3]相同,前置0可以省略,最后的 ...

  6. UIGestureRecognizer和UITouch

    UIGestureRecognizer和UITouch是分别判断的,如果判定了是手势,那就不再触发UITouch事件,如果两者并存,则会先执行UITouch事件,之后如果确认是手势,不再执行UITou ...

  7. wordpress设置固定链接无效的解决办法

    声明:本人用的是Ubuntu 10.04 LAMP服务 以下内容是针对在Apache服务器下Wordpress修改固定链接出错无效的解决办法: 如果改了固定链接以后出问题,请查看Wordpress根目 ...

  8. 对爱奇艺PC Web主站来说,良好的SEO能够帮助其获得更多的搜索流量,因而页面上一些非常重要的内容仍然需要依靠服务端进行渲染,由于另外开发一套基于Node的SSR后台成本较高,而乐趣(基于java和velocity模板引擎)平台作为渲染系统已经十分成熟且运行稳定,在充分试验后,我们决定在Uniqy中使用服务端同步与客户端浏览器异步二次渲染相结合的方式,结合Vue2.0提供的 slot插槽机制,很

    https://mp.weixin.qq.com/s/eB20BoqzENO_oNk8eDg4Eg 干货|爱奇艺PC Web新框架实践 原创: 前端研发团队 爱奇艺技术产品团队 昨天      

  9. vue - vue + vue-router + vuex 简单项目

    简单的,我的首页,我的笔记项目 vue + vue-router + vuex View + VM(ViewModel) + Model (webpack) vue init webpack lint ...

  10. eclipse copy web project后修改context root

    1.项目-->右键-->properties