Java Spring引导-设置全局错误处理程序以屏蔽REST端点
我有一个带有restful端点的spring启动应用程序。我希望有一个全局错误处理程序,基本上可以捕获任何异常,这样我就可以管理响应(即,不希望在响应中公开一个大的java stacktrace)Java Spring引导-设置全局错误处理程序以屏蔽REST端点,java,spring,spring-mvc,spring-boot,Java,Spring,Spring Mvc,Spring Boot,我有一个带有restful端点的spring启动应用程序。我希望有一个全局错误处理程序,基本上可以捕获任何异常,这样我就可以管理响应(即,不希望在响应中公开一个大的java stacktrace) 实现这一点的最佳方法是什么?创建一个带有异常处理程序的控制器建议类,该类将缓存所需类型的所有异常 @ControllerAdvice public class GlobalExceptionHandler { private static final Logger log = LoggerF
实现这一点的最佳方法是什么?创建一个带有异常处理程序的控制器建议类,该类将缓存所需类型的所有异常
@ControllerAdvice
public class GlobalExceptionHandler {
private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class);
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
@ExceptionHandler(Exception.class)
public void handleAll(Exception e) {
log.error("Unhandled exception occurred", e);
}
}
如果愿意,可以像从常规控制器方法一样从该方法返回主体,或者只返回一些HTTP状态代码。上面的代码使用@ResponseStatus
注释返回500
您只能捕获特定的异常类型。@ExceptionHandler
注释接受异常数组作为值属性