SpringBoot 统一异常处理
1、自定义异常
/**
* 自定义请求限制异常
* @author PkyShare
* @date 2020/3/20 0020 18:02
*/
public class RequestLimitException extends Exception {
private static final long serialVersionUID = 1324220058954874702L;
public RequestLimitException() {
super("请求超出设定的限制");
}public RequestLimitException(String message) {
super(message);
}
}
2、全局异常捕获
package com.huanda.app.server.admin.controller.config;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSONObject;
import com.huanda.app.server.commons.constant.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
/**
* 全局异常捕捉
* @author PkyShare
* @date 2020/8/13 0013 10:38
*/
@ControllerAdvice
public class GlobaExceptionHandler {/**
* 自定义访问频繁异常处理
* @return
*/
@ExceptionHandler(RequestLimitException.class)
public ResponseEntity
在 Spring 里,我们可以使用 @ControllerAdvice 来声明一些全局性的东西,最常见的是结合 @ExceptionHandler 注解用于全局异常的处理。3、测试 Controller
- @ControllerAdvice 是在类上声明的注解,其用法主要有三点:
- @ExceptionHandler 注解标注的方法:用于捕获 Controller 中抛出的不同类型的异常,从而达到异常全局处理的目的;
- @InitBinder 注解标注的方法:用于请求中注册自定义参数的解析,从而达到自定义请求参数格式的目的;
- @ModelAttribute 注解标注的方法:表示此方法会在执行目标 Controller 方法之前执行 。
@PostMapping(value = "https://www.it610.com/test")
public AbstractBaseResult query(QueryRecord record) throws Exception {
throw new RequestLimitException();
// 测试抛出自定义异常
}
【SpringBoot 统一异常处理】根据自己的业务进行抛出和处理。4、测试结果
文章图片
推荐阅读
- Activiti(一)SpringBoot2集成Activiti6
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- python-安装sublime遇到异常
- Android|Android BLE蓝牙连接异常处理
- springboot使用redis缓存
- cocosbcx白皮书解读(一)|cocosbcx白皮书解读(一)| 区块链如何统一开发者、发行商、用户之间的利益
- springboot整合数据库连接池-->druid
- SpringBoot中YAML语法及几个注意点说明
- springboot结合redis实现搜索栏热搜功能及文字过滤