Spring有帮我们做异常处理(页面跳转)有兴趣的可以研究研究BasicErrorController这个类,这是springboot处理异常的源码,它的原理很简单,就是判断请求头:Accept 是否是text/html,如果是返回view,如果不是返回json。但是我们发现它的报错信息不太符合开发,所以我们需要自定义报错信息。

1. 首先创建自定义异常

创建一个自定义异常。

package com.laojiao.securitydemo.myexception;/*** Created by Fant.J.*/
public class UserNotExistException extends RuntimeException {private String id;public UserNotExistException(String id) {super("user not exist");this.id = id;}public String getId() {return id;}public void setId(String id) {this.id = id;}
}

2. 创建异常处理类

package com.laojiao.securitydemo.myexception;/*** 错误处理器:处理其他Controller出的异常* Created by Fant.J.*/
@ControllerAdvice
public class ControllerException {@ExceptionHandler(UserNotExistException.class)   //需要处理的 异常类@ResponseBody   //json格式@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)   //响应状态:服务器内部错误异常public Map<String,Object> handleUserNotExistException(UserNotExistException ex){Map<String,Object> result = new HashMap<>();result.put("id",ex.getId());result.put("message",ex.getMessage());return result;}
}

我在这里返回json,所以用了@ResponseBody注解。

spring boot全局异常捕捉相关推荐

  1. Spring Boot 全局异常机制

    导语   在项目开发中遇到一个问题,就是通过校验规则判断的内容抛出的异常,并没有被Spring Boot的全局异常捕获机制锁处理.这里提供了如下的解决方案 校验规则引入   在项目的POM文件中引入如 ...

  2. Spring Boot 全局异常捕获

    import javax.servlet.http.HttpServletRequest; import org.springframework.web.bind.annotation.Control ...

  3. spring boot 四:全局异常捕捉

    spring boot 四:全局异常捕捉 1 前言 希望定制错误,比如一般springboot的500错误展示如下(trace等可以通过配置application.yml来决定隐藏还是具有): app ...

  4. Spring MVC全局异常后返回JSON异常数据

    Spring MVC全局异常后返回JSON异常数据 参考文章: (1)Spring MVC全局异常后返回JSON异常数据 (2)https://www.cnblogs.com/exmyth/p/560 ...

  5. spring设置全局异常处理器

    spring设置全局异常处理器 参考文章: (1)spring设置全局异常处理器 (2)https://www.cnblogs.com/gongxijun/p/5824723.html 备忘一下.

  6. spring boot 全局异常处理的实现(@ExceptionHandler),以及@InitBinder、@ModelAttribute的作用

    spring boot 全局异常处理的实现(@ExceptionHandler),以及@InitBinder.@ModelAttribute的作用 参考文章: (1)spring boot 全局异常处 ...

  7. Android全局异常捕捉器

    Android全局异常捕捉器主要是捕获应用在运行中无法预计的异常 1.首先要写一个MyCrashHandler实现UncaughtExceptionHandler package com.exampl ...

  8. Spring Boot 全局懒加载

    文章目录 Spring Boot 全局懒加载 1.简介 2.排除 Bean 3.Spring Boot 全局懒加载的利弊 Spring Boot 全局懒加载 1.简介 Spring Boot 在版本 ...

  9. Java全局异常捕捉

    1.场景还原 在项目开发中,对于各种异常都有不同的报错提示或策略,无疑对于用户或者开发来说,是一个很好的用户体验:如何在java定义一个全局异常捕捉呢? 2.实现方案 2.1 自定义一个业务异常类 @ ...

  10. Spring全局异常捕捉实现HandlerExceptionResolver接口,在error-page配置捕捉异常

    方式一 1.1  创建全局异常类 该类要实现HandlerExceptionResolver接口,详细如下: package com.rbc.hbms.util;import java.util.Ha ...

最新文章

  1. GAITC 2020 演讲实录丨张立华:机器智能的发展现状
  2. python numpy矩阵运算加速器 NumExpr
  3. java根据ip查计算机名_Java如何从IP地址查找主机名?
  4. 简要分析电话光端机的常见问题
  5. mysql中怎么存住文件链接_数据库如何保存链接文件
  6. rhel6.3-64 yum问题
  7. ext2.0中EditorGridPanel (8)
  8. Proxmark3初学:用PM3克隆M1普通门禁卡方法
  9. sql order by 用法
  10. 陈强老师公开课笔记2——中介效应的原理与检验
  11. LivePlayer H5播放器(实时视频和历史视频)
  12. 【亲测】80个经典在线休闲H5小游戏源码合集,直接上传空间即可使用,可玩性还不错
  13. unity 发布苹果商店_[Mac] Unity 导出 iOS 游戏并上架 App Store
  14. 如何制作商场超市地摊清仓大甩卖广告语录音
  15. 书终于出来了:《Unity3D平台AR与VR开发快速上手》
  16. 少说话多写代码之Python学习017——字典的方法(items、pop)
  17. 【Java系列】深入解析Java多线程
  18. Teamcenter的BMIDE中LOV配置
  19. drep:微生物基因组快速去冗余-文章解读+帮助文档+实战
  20. 嵌入式linux mplayer,QT调用mplayer 的方法

热门文章

  1. 什么是基金前端收费和后端收费
  2. 【LeetCode】【字符串】题号:*12. 整数转罗马数字
  3. GIS案例练习-----------第五天
  4. 从零基础入门Tensorflow2.0 ----一、1.3 实战分类模型(实战回调函数)
  5. python划分train val test
  6. 旋转数组的最小数字(牛客网C++代码)
  7. python 在Excel中新增一列
  8. 初步接触Java中的Lambda表达式
  9. numpy的广播机制
  10. ArcGIS 字段计算器取前几位和替换操作