springboot使用@ControllerAdvice 捕抓全局异常-自定义异常 落日映苍穹つ 2022-03-06 08:00 286阅读 0赞 //这是全局拦截异常拦截器 package com.springboot.admin.exception; import com.springboot.admin.Result; import org.springframework.http.HttpStatus; import org.springframework.ui.Model; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.Map; @ControllerAdvice public class MyExceptionHandler { /** * 应用到所有@RequestMapping注解方法,在其执行之前初始化数据绑定器 * @param binder */ @InitBinder public void initWebBinder(WebDataBinder binder){ } /** * 把值绑定到Model中,使全局@RequestMapping可以获取到该值 * @param model */ @ModelAttribute public void addAttribute(Model model) { model.addAttribute("attribute", "The Attribute"); } /** * 捕获MyException * @param e * @return json格式类型 */ @ResponseBody @ExceptionHandler({MyException.class}) //指定拦截异常的类型 @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) //自定义浏览器返回状态码 public Result myExceptionHandler(MyException e) { return Result.error(e.getCode(), e.getMessage()); } /** * 捕获Exception * @param e * @return json格式类型 */ @ResponseBody @ExceptionHandler({Exception.class}) //指定拦截异常的类型 @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) //自定义浏览器返回状态码 public Result allExceptionHandler(Exception e) { return Result.error(HttpStatus.INTERNAL_SERVER_ERROR.value(), e.toString()); } } **//这是我的自定义异常** package com.springboot.admin.exception; public class MyException extends RuntimeException { private String message; private int code; public MyException(int code, String message) { super(message); this.message = message; this.code = code; } @Override public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public int getCode() { return code; } public void setCode(int code) { this.code = code; } } **//测试** public Result testException() throws Exception { Ups ups = upsMapper.selectById(1); ups.setUid(2); ups.setTypeId(8); upsMapper.updateById(ups); Ups ups1 = upsMapper.selectById(1); System.out.println("type_id----------------" + ups1.getTypeId()); // int a = 1 / 0; throw new MyException(1, "打印错误信息"); } **注意: 抛出异常时必须抛出 RuntimeException 才能捕捉到,另外,自定义异常也必须继承 RuntimeException 异常,否则也是无法捕捉的。RuntimeException 才能回滚** **注意:尽量只拦截自定义异常,如果全部拦截,不方便查看所有报错信息。**
相关 @ControllerAdvice + @ExceptionHandler 定义全局异常 1. 创建Spring Boot项目:使用Spring Initializr创建一个新的Spring Boot项目。 2. 依赖配置:在`pom.xml` 文件中(方便起见 清疚/ 2024年02月19日 10:13/ 0 赞/ 79 阅读
相关 Springboot 自定义全局异常处理 自定义全局异常处理 业务异常 捕捉validation框架校验异常 业务异常 在项目根包目录下新建 exception.base 包 新建Base 男娘i/ 2023年09月29日 06:11/ 0 赞/ 34 阅读
相关 springboot自定义全局异常捕获 注意: 把错误码 重设成200,不然还是返回的异常信息。 注解@Compoment交由spring创建bean 之后就能愉快的返回自己的错误码了。 或者记录 忘是亡心i/ 2022年12月20日 03:28/ 0 赞/ 197 阅读
相关 springboot 自定义全局异常拦截 / @author xuqiang @description: 异常处理控制器 @date 2020/11/413:33 我会带着你远行/ 2022年11月22日 12:52/ 0 赞/ 251 阅读
相关 @ControllerAdvice全局处理异常 @ControllerAdvice,是Spring3.2提供的新注解,它是一个Controller增强器,可对controller中被 @RequestMapping注解的方法 短命女/ 2022年11月13日 00:50/ 0 赞/ 200 阅读
相关 SpringBoot——全局异常处理和自定义异常 SpringBoot中有一个`@ControllerAdvice`的注解,使用该注解表示开启了全局异常的捕获,我们只需在自定义一个方法使用`@ExceptionHandler` 超、凢脫俗/ 2022年11月10日 10:44/ 0 赞/ 254 阅读
相关 @ControllerAdvice 全局异常处理 [ControllerAdvice 文档][ControllerAdvice] 在spring 3.2中,新增了@ControllerAdvice 注解,它通常用于定义 迈不过友情╰/ 2022年04月25日 01:36/ 0 赞/ 268 阅读
相关 springboot使用@ControllerAdvice 捕抓全局异常-自定义异常 //这是全局拦截异常拦截器 package com.springboot.admin.exception; import com.spring 落日映苍穹つ/ 2022年03月06日 08:00/ 0 赞/ 287 阅读
相关 springboot全局异常处理 --- @ControllerAdvice 1、首先我们可以针对自己的业务创建自定义异常,系统层面,业务方面等 我们系统业务层统一使用BizException,这个是自定义的。 2、配置controllerAd 偏执的太偏执、/ 2021年11月22日 13:50/ 0 赞/ 407 阅读
还没有评论,来说两句吧...