全局异常处理

为什么要配全局异常?

  • 不配全局服务端报错场景,1/0、空指针等

配置好处

  • 统一的错误页面或错误码
  • 对用户更友好

配置全局异常

第一步类添加注解

  • @ControllerAdvicce,如果需要返回JSON数据,则方法需要加@ReponseBody
  • @RestControllerAdvice,默认返回JSON数据,方法不需要加@ResponseBody

第二步方法添加处理器

  • 捕获全局异常,处理所有不可知的异常
  • @ExceptionHandler(value=Exception.class)

CustomExtHandler.java

package net.cyb.demo.handler;

import net.cyb.demo.utils.JsonData;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice; import javax.servlet.http.HttpServletRequest; /**
* 标记这是一个异常处理类
*/
@RestControllerAdvice
public class CustomExtHandler {
@ExceptionHandler(value = Exception.class)
JsonData HandlerException(Exception e, HttpServletRequest request){
return JsonData.buildError(-2,"服务端出问题了");
}
}

JsonData.java

package net.cyb.demo.utils;

/**
* 接口返回工具类
*/
public class JsonData {
private int code;
private Object data;
private String msg; public JsonData() {
} public JsonData(int code, Object data) {
this.code = code;
this.data = data;
} public JsonData(int code, Object data, String msg) {
this.code = code;
this.data = data;
this.msg = msg;
} public static JsonData buildSuccess(Object data) {
return new JsonData(0, data);
} public static JsonData buildError(String msg) {
return new JsonData(-1, "", msg);
} public static JsonData buildError(int code, String msg) {
return new JsonData(code, "", msg);
} public int getCode() {
return code;
} public void setCode(int code) {
this.code = code;
} public Object getData() {
return data;
} public void setData(Object data) {
this.data = data;
} public String getMsg() {
return msg;
} public void setMsg(String msg) {
this.msg = msg;
} @Override
public String toString() {
return "JsonData{" +
"code=" + code +
", data=" + data +
", msg='" + msg + '\'' +
'}';
}
}

SpringBoot全局异常,返回JSON数据的更多相关文章

  1. 2.SpringBoot之返回json数据

    一.创建一个springBoot个项目 操作详情参考:1.SpringBoo之Helloword 快速搭建一个web项目 二.编写实体类 /** * Created by CR7 on 2017-8- ...

  2. SpringBoot入门篇--对于JSON数据的返回以及处理二

    我们在进行开发的过程的难免会进行对象的返回,比如一个用户对象User,以及一个集合list,Map等等.在这篇博客中我们就是需要学习一下怎么对一个对象中某些属性的处理.需要补充的一点就是SpringB ...

  3. SpringBoot之返回json数据

    一.创建一个springBoot个项目 二.编写实体类 /** * 返回Json数据实体类 */ public class User { private int id; private String ...

  4. SpringBoot 03_利用FastJson返回Json数据

    自上一节:SpringBoot 02_返回json数据,可以返回json数据之后,由于有些人习惯于不同的Json框架,比如fastjson,这里介绍一下如何在SpringBoot中集成fastjson ...

  5. SpringBoot 02_返回json数据

    在SpringBoot 01_HelloWorld的基础上来返回json的数据,现在前后端分离的情况下多数都是通过Json来进行交互,下面就来利用SpringBoot返回Json格式的数据. 1:新建 ...

  6. spingmvc 返回json数据日期格式化方法

    第一种: json 用的是这个依赖 <!-- JSON lib 开发包 以及它的依赖包 --> <dependency> <groupId>com.fasterxm ...

  7. 前台返回json数据的常用方式+常用的AJAX请求后台数据方式

    我个人开发常用的如下所示: 之所以像下面这样下,一是前台Ajax,二是为安卓提供接口数据 现在常用的是返回JSON数据,XML的时代一去不复返 JSON相对于XML要轻量级的多 对JSON不是十分熟悉 ...

  8. (2)Spring Boot返回json数据【从零开始学Spring Boot】

    在做如下操作之前,我们对之前的Hello进行简单的修改,我们新建一个包com.kfit.test.web 然后新建一个类HelloControoler, 然后修改App.java类,主要是的这个类就是 ...

  9. Spring Boot 处理异常返回json

    spring boot 老版本处理异常  对于浏览器客户端,返回error数据 对于非浏览器返回json数据, 主要取决于你的请求head 是什么 但是当我们自定义了:  老版本无论请求什么都会返回j ...

  10. SpringBoot全局异常拦截

    SpringBoot全局异常捕获 使用到的技能 @RestControllerAdvice或(@ControllerAdvice+@ResponseBody) @ExceptionHandler 代码 ...

随机推荐

  1. fastposter v2.9.3 简单易用的海报生成器

    fastposter海报生成器是一款快速开发海报的工具.只需上传一张背景图,在对应的位置放上组件(文字.图片.二维.头像)即可生成海报. 点击代码直接生成各种语言的调用代码,方便快速开发. 现已服务众 ...

  2. v-for比v-if优先级更高

    在V2当中,v-for的优先级更高,而在V3当中,则是v-if的优先级更高. 在V3当中,做了v-if的提升优化,去除了没有必要的计算, 但同时也会带来一个无法取到v-for当中遍历的item问题, ...

  3. 7月 Splashtop上线了这些新功能 快来看鸭

    经过我们的攻城狮天天努力,我们的软件又得到了升级和完善,上线了一些有用的新功能和增强功能,快来看看吧. Splashtop已为Splashtop Business Access,Splashtop远程 ...

  4. 因为我的一次疏忽而带来的golang1.23新特性

    距离golang 1.23发布还有两个月不到,按照惯例很快要进入1.23的功能冻结期了.在冻结期间不会再添加新功能,已经添加的功能不出大的意外一般也不会被移除.这正好可以让我们提前尝鲜这些即将到来的新 ...

  5. Asp-Net-Core开发笔记:使用ActionFilterAttribute实现非侵入式的参数校验

    前言 在现代应用开发中,确保API的安全性和可靠性至关重要. 面向切面编程(AOP)通过将横切关注点(如验证.日志记录.异常处理)与核心业务逻辑分离,极大地提升了代码的模块化和可维护性. 在ASP.N ...

  6. docker镜像仓库管理Harbor

    一 部署Harbor 前提: Harbor需要运行在docker上面,所以首先需要在harbor部署机器上面自行部署docker和docker-compose docker-compose安装命令如下 ...

  7. Java遍历Map集合的方法

    Java中遍历Map集合的常用方式主要有以下几种: 1.使用keySet()方法遍历 遍历Map的key集合,然后通过key获取value. Map<String, Integer> ma ...

  8. Flask学习记录:在w3cschool资料的基础上的个人摘录、实践与总结

    学习与转载自w3cschool,在w3cschool资料的基础上的个人摘录.实践与总结,如有错误望留言. 一.Flask 概述 2021-08-25 14:01 更新 1.1 什么是Web Frame ...

  9. 如何保留 Excel 表头和第一行数据并追加 CSV 数据

    准备工作 在开始之前,确保你的 Python 环境中已经安装了 openpyxl 和 pandas 库.可以使用以下命令进行安装: pip install openpyxl pandas 第一步:编写 ...

  10. 第一个java的应用程序

    编写java第一个程序 class HelloWorld { public static void main(String[] args){ System.out.print("Hello ...