全局异常类


@RestControllerAdvice
public class GlobalExceptionDispose {

    private static Logger LOGGER = LoggerFactory.getLogger(GlobalExceptionDispose.class);

    @ExceptionHandler(Exception.class)
    public Res onControllerException(Exception e) {
        String message = "异常捕获" + e.getMessage();
        StringBuffer messageStackTrace = new StringBuffer();
        Arrays.stream(e.getStackTrace()).forEach(stackTrace -> messageStackTrace.append("   " + stackTrace + "\n"));
        LOGGER.error(message + "\n" + messageStackTrace.toString());
        return Res.error(message);
    }

}

在Spring Boot中,可以通过自定义一个全局异常处理类来捕获整个应用程序中的异常并进行统一处理。以下是一个简单的示例: 首先,创建一个自定义的全局异常处理类,例如 `GlobalExceptionHandler`: ```java @ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(Exception.class) public ResponseEntity<String> handleException(Exception e) { // 处理异常逻辑 return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Something went wrong"); } @ExceptionHandler(MyCustomException.class) public ResponseEntity<String> handleCustomException(MyCustomException e) { // 处理自定义异常逻辑 return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(e.getMessage()); } // 可以添加其他异常处理方法... } ``` 在上述示例中,使用了 `@ControllerAdvice` 注解将类标记为全局异常处理类。然后,可以为不同类型的异常编写多个异常处理方法,并通过 `@ExceptionHandler` 注解来指定处理的异常类型。在处理方法中,可以根据需要进行异常处理逻辑,并返回合适的响应。 接下来,为了使全局异常处理器生效,需要在应用程序的主类上添加 `@EnableWebMvc` 注解或者是在配置类上添加该注解。 ```java @SpringBootApplication @EnableWebMvc public class MyApp { public static void main(String[] args) { SpringApplication.run(MyApp.class, args); } } ``` 这样,当应用程序中抛出未捕获的异常时,全局异常处理器就会捕获并进行相应的处理。 需要注意的是,全局异常处理器可以处理控制器层以及其他各个层级的异常。如果有多个全局异常处理类存在,Spring Boot会根据异常类型选择最匹配的处理器。 希望以上内容能够对你有所帮助!如有其他问题,请继续提问。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值