目录标题

  • springboot 全局异常处理类
    • 依赖
    • 代码

springboot 全局异常处理类

依赖

 <!-- Spring Boot Web 依赖 核心 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>

1、自定义一个 GlobalExceptionHandler 作为处理全局异常的处理类
2、类上加上 @ControllerAdvice 注解
3、在方法级别 加上 @ExceptionHandler 注解 与需要处理的类型
本类中有一个 运行时异常,还有一个 权限拦截异常

代码

package com.huayi.minprogramdemo.interceptor;import com.huayi.minprogramdemo.utils.Res;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.web.server.ConfigurableWebServerFactory;
import org.springframework.boot.web.server.ErrorPage;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.http.HttpStatus;
import org.springframework.security.access.AccessDeniedException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;import javax.servlet.http.HttpServletRequest;/*** @program: minprogram-demo* @description: 全局异常处理类* @author: Long Ao Tian* @create: 2020-02-13 14:17**/
@ControllerAdvice  //拦截所有requestMapping
public class GlobalExceptionHandler {private static final Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);/*** 处理自定义的业务异常,没有权限** @param request* @param e* @return*/
//    @ResponseStatus(value = HttpStatus.FORBIDDEN)@ExceptionHandler(value = AccessDeniedException.class)@ResponseBodypublic Object AccessExceptionHandler(HttpServletRequest request, AccessDeniedException e) {logger.error("发生业务异常!原因是:{},\n 具体错误在 {}", e, e.getStackTrace()[0] + "" + e.getStackTrace()[1]);return Res.error(403, "没有权限访问");}/*** 运行时异常的** @param request* @param e* @return*/@ExceptionHandler(value = RuntimeException.class)@ResponseBodypublic Object defaultErrorHandler(HttpServletRequest request, RuntimeException e) {//        [0]logger.error("发现运行时业务异常!原因是:{},\n 具体错误在 {}", e, e.getStackTrace()[0] + "" + e.getStackTrace()[1]);return Res.error();}/*** 404 异常** @return*/@Beanpublic WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer() {return (factory -> {ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/404.do");factory.addErrorPages(error404Page);});}}

springboot 全局异常处理类相关推荐

  1. springboot定义全局异常处理类GlobalExceptionHandler

    全局异常处理:GlobalExceptionHandler 定义全局异常处理类 以下为扩展部分 返回参数封装 引用示例 定义全局异常处理类 注意:如果需要返回页面,则要删掉@ResponseBody注 ...

  2. SpringBoot 全局异常处理

    下面首先来观察一个程序代码,例如:现在建立一个控制器,而后这个控制器自己抛出一个异常.@Controller public class MemberController extends Abstrac ...

  3. springboot全局异常处理_SpringBoot:如何优雅地处理全局异常

    之前用springboot的时候,只知道捕获异常使用try{}catch,一个接口一个try{}catch,这也是大多数开发人员异常处理的常用方式,虽然屡试不爽,但会造成一个问题,就是一个Contro ...

  4. SpringBoot全局异常处理

    1.为什么要全局异常处理 在实际开发中,如果不处理统一处理异常,那么前端在调用后端提供的接口,就会处理各种的异常结构,对于前端来说那可谓是一场灾难,这对前后端的协作也不友好.比如后端路径:/api/v ...

  5. springboot统一异常处理类及注解参数为数组的写法

    springboot统一异常处理类及注解参数为数组的写法 参考文章: (1)springboot统一异常处理类及注解参数为数组的写法 (2)https://www.cnblogs.com/zhucww ...

  6. SpringBoot全局异常处理及前端请求参数校验

    SpringBoot全局异常捕获处理及参数校验 文章目录 SpringBoot全局异常捕获处理及参数校验 为什么要用全局异常处理? 如何进行全局异常捕获和处理? 统一结果封装 统一返回结果 枚举类 使 ...

  7. springBoot 全局异常处理 报错 : Could not resolve method parameter at index 0 in public .....

    在学习 springboot 的全局异常处理时   ,我写了一个处理异常类 @ControllerAdvice public class ErrorCatchController {@Exceptio ...

  8. [SpringBoot]全局异常处理

    2019独角兽企业重金招聘Python工程师标准>>> 1. 全局异常处理 2. SpringBoot错误处理原理 3. SpringBoot定制错误页面 4. SpringBoot ...

  9. springboot 全局异常处理 自定义mvc错误页面展示

    如下:所有的异常都会进入到这里.根据个人业务按需处理 全局异常处理 @ControllerAdvice public class ErrorAdviceController {//指定捕获对象@Exc ...

最新文章

  1. 格式化_U盘提示格式化怎么办 U盘提示格式化解决方法【详解】
  2. rac下重做控制文件
  3. html调用deeplink,如何优雅地从浏览器打开本地应用deeplink
  4. 【Python3网络爬虫开发实战】3.1-使用urllib
  5. 5分绩点转4分_U19男篮世界杯 | 郭昊文空砍23分4篮板5助攻 国青72-86负菲律宾
  6. oracle 11g安装自己理解
  7. idea 导入spring 源码 踩坑记总结整理
  8. MATLAB-阶乘运算
  9. 新疆计算机二级vb 试题,2014新疆维吾尔自治区全国计算机等级考试二级VB试题及答案...
  10. 世界读书日 | 这11本书将颠覆技术人士的思维方式
  11. Qt实战案例(13)——Qt的界面外观详细介绍
  12. php以大写字母分割,js按大写字母拆分字符串
  13. 深信服Python笔试
  14. 怎么实现类似星星闪烁的效果(box-shadow)
  15. 买笔记本电脑必须知道的事情
  16. pdf 转 高清图片
  17. flv直播流播放视频,websocket响应造成内存泄漏 浏览器崩溃
  18. 计算机方面的英语杂志,计算机类有哪些EI检索的英文期刊
  19. dos的cd命令输入cd d: 怎么不能切换到D盘了?
  20. CVE-2010-0188漏洞点定位

热门文章

  1. mysql之查询前几条或者中间某几行数据
  2. Qt的特性——信号和槽
  3. html基础内容样式
  4. 【汇编语言与计算机系统结构笔记12】序格式与伪操作:简化段的定义、操作符等
  5. pro*c添加SQLCHECK后编译报错PLS-S-00201
  6. rpc:call/4函数解析
  7. java基本类型引用类型_Java基本类型和引用类型
  8. C代码工具--自动生成enum值和名字映射代码
  9. android rom 裁剪,Android之调用系统照相机并裁剪
  10. mysql 存储过程 风险_删除/恢复SQL server危险的存储过程方法