@ControllerAdvice注解
  wtcU0l7oJED3 2023年12月12日 19 0

前言

在目前的项目开发中,发现日志都是固定的格式

特别是报错error日志,今天又遇到一个error的日志报错,对日志格式很感兴趣,研究下当前的项目使用的相关技术。


概述

@ControllerAdvice 是Spring框架中用于全局异常处理的注解。它可以用于在一个类中定义全局的异常处理方法,该类中的方法可以处理所有控制器中抛出的异常。

使用 @ControllerAdvice 注解可以让我们在一个地方集中处理所有控制器中抛出的异常,避免了在每个控制器中都进行异常处理的情况。当控制器中抛出异常时,Spring会自动调用 @ControllerAdvice 注解所定义的类中的方法来处理异常。

使用 @ControllerAdvice 注解需要定义一个类,在该类中可以定义多个方法来处理不同类型的异常。这些方法应该使用 @ExceptionHandler 注解来指定它们所处理的异常类型。例如:

@ControllerAdvice  
public class GlobalExceptionHandler {  
   
    @ExceptionHandler(NotFoundException.class)  
    public ResponseEntity<String> handleNotFoundException(NotFoundException e) {  
        // 处理 NotFoundException 异常  
        return new ResponseEntity<>("Resource not found", HttpStatus.NOT_FOUND);  
    }  
   
    @ExceptionHandler(BadRequestException.class)  
    public ResponseEntity<String> handleBadRequestException(BadRequestException e) {  
        // 处理 BadRequestException 异常  
        return new ResponseEntity<>("Invalid request", HttpStatus.BAD_REQUEST);  
    }  
   
    // 其他处理方法...  
}

在上面的例子中,我们定义了一个名为 GlobalExceptionHandler 的类,并使用 @ControllerAdvice 注解来指定它为全局异常处理类。该类中定义了两个方法,分别用于处理 NotFoundException 和 BadRequestException 异常。当控制器中抛出这些异常时,Spring会自动调用相应的方法来处理它们。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月12日 0

暂无评论

推荐阅读
wtcU0l7oJED3