温馨提示×

springboot定义全局异常怎么解决

小亿
86
2023-11-09 15:58:13
栏目: 编程语言

在Spring Boot中,可以通过@ControllerAdvice注解和@ExceptionHandler注解来定义全局异常处理。

首先,创建一个全局异常处理类,使用@ControllerAdvice注解标记该类为全局异常处理类。然后在类中定义一个方法,并使用@ExceptionHandler注解标记该方法为异常处理方法,该方法的参数为要处理的异常类型。

例如,创建一个GlobalExceptionHandler类作为全局异常处理类:

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)
    public ResponseEntity<String> handleException(Exception ex) {
        // 返回自定义的异常信息
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("发生异常,请稍后重试");
    }
}

上述代码中,handleException方法处理Exception类型的异常,当发生异常时,返回自定义的异常信息。

接下来,需要确保全局异常处理类被Spring Boot扫描到。可以通过在启动类上添加@ComponentScan注解来指定要扫描的包,或者将全局异常处理类放在启动类所在的包或其子包下。

这样,当发生异常时,全局异常处理类中相应的方法将会被调用,并返回自定义的异常信息。

需要注意的是,全局异常处理类只能处理在Controller中发生的异常,对于其他地方的异常无效。如果要处理其他地方的异常,可以在相应的类中使用@ExceptionHandler注解来处理。

0