使用@ControllerAdvice注解@ExceptionHandler(Exception.class)可以工作,但@ExceptionHandler({AuthenticationException.class})不能工作。
@ControllerAdvice注解是Spring MVC框架提供的一个注解,用于定义全局异常处理器。通过在@ControllerAdvice注解中使用@ExceptionHandler注解,可以捕获并处理Controller中抛出的异常。
在这个问题中,使用@ControllerAdvice注解@ExceptionHandler(Exception.class)可以处理所有类型的异常,因为Exception是所有异常的父类。当Controller中抛出任何类型的异常时,都会被这个全局异常处理器捕获并进行处理。
然而,@ExceptionHandler({AuthenticationException.class})不能工作的原因是AuthenticationException是一种特定类型的异常,它不是Exception的子类。因此,使用@ExceptionHandler({AuthenticationException.class})只能处理AuthenticationException类型的异常,无法处理其他类型的异常。
要解决这个问题,可以将@ExceptionHandler({AuthenticationException.class})改为@ExceptionHandler(AuthenticationException.class)。这样就可以正确地捕获和处理AuthenticationException类型的异常了。
推荐的腾讯云相关产品和产品介绍链接地址: