Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring引导-设置全局错误处理程序以屏蔽REST端点_Java_Spring_Spring Mvc_Spring Boot - Fatal编程技术网

Java Spring引导-设置全局错误处理程序以屏蔽REST端点

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

我有一个带有restful端点的spring启动应用程序。我希望有一个全局错误处理程序,基本上可以捕获任何异常,这样我就可以管理响应(即,不希望在响应中公开一个大的java stacktrace)


实现这一点的最佳方法是什么?

创建一个带有异常处理程序的控制器建议类,该类将缓存所需类型的所有异常

@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
注释接受异常数组作为值属性