SpringBoot异常消息统一处理

package com.yangho.utils;

import com.baomidou.mybatisplus.extension.api.R;
import com.yangho.Domain.Result;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * @ClassName ProjectExceptionAdvice
 * @Description 异常处理类
 * @Author Yanghao2
 * @Date 2022/2/6 2:02
 * @Version V1.0
 */
@RestControllerAdvice
public class ProjectExceptionAdvice {
    @ExceptionHandler
    public Result doOtherException(Exception ex) {
        //给相关人员发送消息
        ex.printStackTrace();
        return new Result(false,"服务器故障!请稍后再试");
    }
}

Spring Boot 提供了一种方便的方式来统一处理应用程序中的异常,这主要通过全局异常处理机制实现。在 Spring Boot 3 中,你可以配置 `@ControllerAdvice` 或 `@ExceptionHandler` 注解的方法来捕获并处理各种类型的异常。以下是几个关键点: 1. **全局异常处理器 (`@ControllerAdvice`)**:创建一个单独的类,其中包含 `@ExceptionHandler` 注解的方法来处理来自 @RestController 的 HTTP 请求引发的特定类型异常。这些方法通常接收 `HttpServletResponse` 和 `Throwable` 参数。 ```java @ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(value = Exception.class) public ResponseEntity<?> handleAllErrors(Exception ex) { // 异常处理逻辑,如记录日志、返回错误响应等 return new ResponseEntity<>(new ErrorResponse(ex.getMessage()), HttpStatus.INTERNAL_SERVER_ERROR); } } ``` 2. **异常映射 (`@MappingException`)**:如果你想要对特定异常类型进行定制化的处理,可以使用 `@MappingException` 注解将它映射到一个特定的处理器方法。 3. **自定义异常类 (`@ControllerAdvice` 或者 @ResponseBody)`**:定义自定义异常类,并在需要的地方抛出,然后在异常处理器中捕获并返回给客户端。 4. **嵌套异常处理器**:如果需要处理更深层次的异常,例如业务层异常,可以在异常处理器中继续捕获并适当地处理。 **相关问题--:** 1. Spring Boot 如何设置全局异常消息模板? 2. 如何处理Spring MVC的预定义HTTP状态码? 3. 怎么在Spring Boot中启用详尽的异常堆栈跟踪?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值