springboot中添加全局异常捕获类

足下之路      2022-05-17     730

关键词:

前几天工作中遇到一个项目,前后端分离的,作为后端开发专注开发接口。对于程序中出现的异常如果不进行处理,将报错信息直接返回到前端十=时不优雅的,因此需要对异常进行捕获和处理,但是每个接口都单独处理异常则显得代码十分臃肿,因此写了个异常捕获类对全局出现的异常进行统一处理。

1.如果程序中出现异常如下:

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String hello(String idNum) {
         
       throw new BusinessException("抛出业务异常");
        
    }
}

2.全局异常处理类:

 //@ControllerAdvice 该注解定义全局异常处理类
@ControllerAdvice
public class GlobalExceptionHandler {

    //@ExceptionHandler 该注解声明异常处理方法
    //value=BusinessException.classb表示处理抛出的BusinessException异常
    @ExceptionHandler(value = BusinessException.class) 
    public ReturnResult defaultErrorHandler(HttpServletRequest req, Exception e) {
        ReturnResult result = new ReturnResult(); //出现异常后返回到前端的信息
       result.setCode("-1");
       result.setMsg("出现了业务异常");
       //打印异常信息
      logger.error("调用失败", e);
       
      return result;
    }
}

3.访问/hello资源时被2中捕获BusinessException异常的类捕获,并返回前端数据{"code":"-1", "message":"出现业务异常"},   日志打印信息如下:

springboot(十九)@controlleradvice+@exceptionhandler全局捕获controller异常

在spring3.2中,新增了@ControllerAdvice注解,可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute,并应用到所有@RequestMapping中。@ControllerAdvice官方文档。创建全局异常处理类:通过使用@ControllerAdvice定义统一的异常处理类,而不是在... 查看详情

springboot全局捕获异常

捕获捕获原理,使用AOP技术,采用异常通知。1.捕获返回json格式2.捕获返回页面步骤:[email protected](pasePackage="")注释异常处理类[email protected](RuntimeException.class)拦截的异常类型,注释方法 查看详情

springboot2.0系列教程springboot框架添加全局异常处理(代码片段)

Hello大家好,本章我们添加全局异常处理。另求各路大神指点,感谢一:为什么需要定义全局异常在互联网时代,我们所开发的应用大多是直面用户的,程序中的任何一点小疏忽都可能导致用户的流失,而程序出现异常往往又是... 查看详情

springboot全局异常处理

 新建包com.chy.exception,包下新建类GlobalExceptionHandler:@ControllerAdvice//controller的增强publicclassGlobalExceptionHandler{@ExceptionHandler(Exception.class)//给controller添加异常处理,括号中指定要捕获处理哪种异常,Exception. 查看详情

spring--springboot配置全局异常处理器

一、为什么要使用全局异常处理器?什么是全局异常处理器?就是把错误异常统一处理的方法。应用场景:1、当你使用jsr303参数校验器,如果参数校验不通过会抛异常,而且无法使用try-catch语句直接捕获,这时可以使用全局异... 查看详情

springboot------全局异常捕获和自定义异常

1.添加Maven依赖<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/mav 查看详情

java中的全局异常处理(代码片段)

Java中的全局异常处理全局异常处理SpringBoot的全局异常处理@ControllerAdvice注解全局异常处理ErrorController接口和@ControllerAdvice注解比较:相同点:两者都是Spring项目中的全局异常处理方式不同点:捕获异常位置不同:ErrorController接口... 查看详情

java中的全局异常处理(代码片段)

Java中的全局异常处理全局异常处理SpringBoot的全局异常处理@ControllerAdvice注解全局异常处理ErrorController接口和@ControllerAdvice注解比较:相同点:两者都是Spring项目中的全局异常处理方式不同点:捕获异常位置不同:ErrorController接口... 查看详情

java中的全局异常处理(代码片段)

Java中的全局异常处理全局异常处理SpringBoot的全局异常处理@ControllerAdvice注解全局异常处理ErrorController接口和@ControllerAdvice注解比较:相同点:两者都是Spring项目中的全局异常处理方式不同点:捕获异常位置不同:ErrorController接口... 查看详情

springboot全局异常捕获

@ControllerAdvice//定义为切面拦截所有publicclassGlobalExceptionHandler{@ExceptionHandler(RuntimeException.class)@ResponseBody//拦截返回是json返回结果publicMap<String,Object>exceptionHandler(){Map<String,Object 查看详情

springboot全局异常捕获

packagecom.example.demo.Config;importorg.springframework.ui.Model;importorg.springframework.web.bind.WebDataBinder;importorg.springframework.web.bind.annotation.ControllerAdvice;importorg.springframew 查看详情

springboot编程之全局异常捕获(代码片段)

springboot编程之全局异常捕获 1、创建GlobalExceptionHandler.java,在类上注解@ControllerAdvice,在方法上注解@ExceptionHandler(value=Exception.class),Exception.class表示拦截所有的异常信息 packagecom.imooc.web.controller;importcom 查看详情

springboot全局捕获异常处理!

packagecom.htli.util;importjava.util.HashMap;importjava.util.Map;importorg.springframework.web.bind.annotation.ControllerAdvice;importorg.springframework.web.bind.annotation.ExceptionHandler;importorg 查看详情

springboot入门二十一,全局异常处理

一共两个文件,一个处理全局异常,保存信息到日志,另外一个负责返回异常信息给接口,只要将其文件添加到项目中,无需再做其他配置即可1.MyExceptionHandler.java全局异常处理类优先执行此类,这里不好抓取404、403等错误信息getMaps()请... 查看详情

从零开始学习springboot(全局异常捕捉)

 1.新建一个类 在类上加上@ControllerAdvice注解,方法上加@ExceptionHandler(value=Exception.class)注解 2.写一个有异常的方法在控制台打印出捕获的异常:  查看详情

springboot:globaldefaultexceptionhandler方法内的友好错误提示,全局异常捕获

springboot:GlobalDefaultExceptionHandler方法内的友好错误提示,全局异常捕获当你的某个控制器内的某个方法报错,基本上回显示出java错误代码,非常不友好,这个时候可以通过新建GlobalDefaultExceptionHandler.java文件,1.加上@ControllerAdvice注解... 查看详情

springboot中全局异常处理器

  SpringBoot中全局异常处理器,就是把错误异常统一处理的方法。等价于Springmvc中的异常处理器。步骤一:基于前面的springBoot入门小demo修改步骤二:修改HelloController类  修改HelloController,使得访问/hello一定会产生异常:someexce... 查看详情

springboot2.x:全局异常处理

前言在JavaWeb系统开发中,不管是Controller层、Service层还是Dao层,都有可能抛出异常。如果在每个方法中加上各种trycatch的异常处理代码,那样会使代码非常繁琐。在SpringMVC中,我们可以将所有类型的异常处理从各个单独的方法中... 查看详情