Java ResponseEntityExceptionHandler不会向客户端发送错误代码,尽管@ResponseStatus annotation

Java ResponseEntityExceptionHandler不会向客户端发送错误代码,尽管@ResponseStatus annotation,java,spring-mvc,exception-handling,exceptionhandler,Java,Spring Mvc,Exception Handling,Exceptionhandler,我想防止spring将RuntimeException的完整堆栈跟踪发送到前端。我是这样做的: @ControllerAdvice public class RestErrorHandler extends ResponseEntityExceptionHandler { @ExceptionHandler(Exception.class) @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR) @Overri

我想防止spring将RuntimeException的完整堆栈跟踪发送到前端。我是这样做的:

@ControllerAdvice
public class RestErrorHandler extends ResponseEntityExceptionHandler {

    @ExceptionHandler(Exception.class)
    @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR)
    @Override
    protected ResponseEntity<Object> handleExceptionInternal(Exception e, Object body, 
               HttpHeaders headers, HttpStatus status, WebRequest request) {
        logger.error("Error happened while executing controller.", e);
        return null;
    }
}
@ControllerAdvice
公共类RestErrorHandler扩展了ResponseEntityExceptionHandler{
@ExceptionHandler(Exception.class)
@ResponseStatus(值=HttpStatus.INTERNAL\u SERVER\u错误)
@凌驾
受保护的响应句柄异常内部(异常e、对象体、,
HttpHeaders标头、HttpStatus状态、WebRequest请求){
logger.error(“执行控制器时发生错误。”,e);
返回null;
}
}
我的目标是只向前端发送错误代码,而不发送其他内容。上述方法将状态200 OK返回到前端。应该返回什么而不是null?

如果只提供了一个,则使用:

此方法用于在没有返回状态代码时设置返回状态代码 错误(例如,对于SC_OK或SC_MOVED_暂时状态 代码)

如果此方法用于设置错误代码,则容器的 错误页面机制将不会被触发。如果出现错误,请执行以下操作: 调用方希望调用web中定义的错误页 应用程序,然后必须使用sendError(int,java.lang.String) 相反

如果也提供了一个,则使用

@ControllerAdvice
public class RestErrorHandler {
    @ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR, reason = "INTERNAL_SERVER_ERROR")
    @ExceptionHandler(Exception.class)
    public void handleConflict(Exception e) {
        // log me
    }
}

所有可以转换为
ResponseEntity
@romac的内容是的,我只是尝试返回新的ResponseEntity(“错误”,状态),结果成功了。为什么它不能与null一起工作?即使使用新的ResponseEntity(null,status),它也会返回200 OK。谢谢如果您添加一个原因:
@ResponseStatus(value=HttpStatus.INTERNAL\u SERVER\u ERROR,reason=“test”)
?@AnmolGupta我猜null除了标题之外,不会返回任何响应。@AnmolGupta您可以尝试使用
原因
,并使用
无效
作为返回类型吗(从而删除
返回null;
语句)?