如何处理自定义异常处理程序类中的错误请求?



我正在开发Spring Boot JPA示例,在这个例子中,我开发了带有@ControllerAdvice的自定义ResponseEntityExceptionHandler类。

{
"createUser": "string",
"lastUpdateUser": "string",
"employeeName": "John Doe",
"employeeEmail": "john.doe@gmail.com" //line-4
"status": "string"
}

如果您查看POST请求,在第 4 行我错过了输入分号 (,(,因此请求被认为是无效的。现在我收到400 HTTP错误,但我想通过在类中处理它来显示自定义错误消息ExceptionalHandler。有什么快速帮助吗?

创建自己的自定义异常。

import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;
@ResponseStatus(value = HttpStatus.BAD_REQUEST)
public class BadRequestException extends RuntimeException {
public BadRequestException(String message) {
super(message);
}
}

在@ControllerAdvice类中处理自定义异常

@ExceptionHandler(BadRequestException.class)
public ResponseEntity<ErrorResponse> handleException(
BadRequestException e) {
// improve error logging when used.
log.error("Unexpected Bad Request. ", e);
return new ResponseEntity<>(new ErrorResponse("Unexpected Bad Request. " + e.getMessage()),
HttpStatus.BAD_REQUEST);
}

您可以简单地实现以下方法。此自定义HttpMessageNotReadableException的响应。

@Override
protected ResponseEntity<Object> handleHttpMessageNotReadable(HttpMessageNotReadableException ex,
HttpHeaders headers, HttpStatus status, WebRequest request) {
logger.debug("========================");
return super.handleHttpMessageNotReadable(ex, headers, status, request);
}

最新更新