@ControllerAdvice不能捕获抛出的异常



我使用java spring。我尝试在我的项目中使用ControllerAdvice作为全局事件处理程序:

@ControllerAdvice
public class ExceptionsHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(RestClientException.class)
public void RestClientException(RestClientException ex)
{
System.out.println("RestClientException" + ex.getMessage());
}
@ExceptionHandler
public void Exception(Exception ex)
{
System.out.println("Exception" + ex.getMessage());
}
}

在这个函数中,我创建并抛出一个异常:

@Component
@RequiredArgsConstructor
public class Scheduler {
public void schedule() throws JsonProcessingException, Exception {
throw new Exception();
}
}

:

@Component
@RequiredArgsConstructor
public class RestfulReaderServiceImpl implements RestfulReaderService {
public String getData(String url) throws RestClientException {
throw new RestClientException();
}
}   

但是当这些函数被触发并抛出异常时,异常处理程序在类exceptionhandler中不执行。

知道为什么ExceptionsHandler类中的异常处理程序不捕获并处理异常?

@ControllerAdvice仅处理从控制器方法抛出的异常,即用@RequestMapping或其任何快捷注释(@GetMapping等)注释的方法。您可以通过从任何@RequestMapping注释方法调用异常抛出方法来检查这一点。

相关内容

  • 没有找到相关文章

最新更新