package com.example.demo.common;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
//统一拦截异常
@RestControllerAdvice(basePackages = "com.example.demo")
public class ExceptionAdvice {
/**
* 捕获 {@code BusinessException} 异常
*//*
@ExceptionHandler({BusinessException.class})
public Result<?> handleBusinessException(BusinessException ex) {
return Result.failed(ex.getMessage());
}
*//**
* 捕获 {@code ForbiddenException} 异常
*//*
@ExceptionHandler({ForbiddenException.class})
public Result<?> handleForbiddenException(ForbiddenException ex) {
return Result.failed(ResultEnum.FORBIDDEN);
}
*//**
* {@code @RequestBody} 参数校验不通过时抛出的异常处理
*//*
@ExceptionHandler({MethodArgumentNotValidException.class})
public Result<?> handleMethodArgumentNotValidException(MethodArgumentNotValidException ex) {
BindingResult bindingResult = ex.getBindingResult();
StringBuilder sb = new StringBuilder("校验失败:");
for (FieldError fieldError : bindingResult.getFieldErrors()) {
sb.append(fieldError.getField()).append(":").append(fieldError.getDefaultMessage()).append(", ");
}
String msg = sb.toString();
if (StringUtils.hasText(msg)) {
return Result.failed(ResultEnum.VALIDATE_FAILED.getCode(), msg);
}
return Result.failed(ResultEnum.VALIDATE_FAILED);
}
*//**
* {@code @PathVariable} 和 {@code @RequestParam} 参数校验不通过时抛出的异常处理
*//*
@ExceptionHandler({ConstraintViolationException.class})
public Result<?> handleConstraintViolationException(ConstraintViolationException ex) {
if (StringUtils.hasText(ex.getMessage())) {
return Result.failed(ResultEnum.VALIDATE_FAILED.getCode(), ex.getMessage());
}
return Result.failed(ResultEnum.VALIDATE_FAILED);
}
*/
/**
* 顶级异常捕获并统一处理,当其他异常无法处理时候选择使用
*/
@ExceptionHandler({Exception.class})
public Result<?> handle(Exception ex) {
return Result.failed(ex.getMessage());
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
接口返回格式统一,配置异常拦截对象
共25个文件
java:9个
xml:8个
gitignore:2个
需积分: 2 0 下载量 51 浏览量
2023-09-21
14:32:54
上传
评论
收藏 76KB ZIP 举报
温馨提示
对于接口报错后,捕获处理或者抛出的一点实例;对接口的异常进行统一拦截,返回统一格式。
资源推荐
资源详情
资源评论
收起资源包目录
demo1.zip (25个子文件)
demo1
HELP.md 1KB
mvnw.cmd 7KB
pom.xml 2KB
src
test
java
com
example
demo
Demo1ApplicationTests.java 207B
main
resources
application.properties 17B
templates
static
java
com
example
demo
controller
DemoController.java 789B
Demo1Application.java 307B
service
IDemoService.java 159B
impl
DemoServiceImpl.java 585B
common
IResult.java 117B
Result.java 1KB
ResultEnum.java 577B
ExceptionAdvice.java 2KB
config
.mvn
wrapper
maven-wrapper.properties 233B
maven-wrapper.jar 61KB
.idea
jarRepositories.xml 880B
ZeppelinRemoteNotebooks
runConfigurations.xml 346B
workspace.xml 4KB
misc.xml 1KB
compiler.xml 795B
.gitignore 237B
encodings.xml 191B
aws.xml 304B
mvnw 11KB
.gitignore 395B
共 25 条
- 1
资源评论
行云的逆袭
- 粉丝: 43
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功