在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注解来处理。