我在尝试在spring-boot rest应用程序中实现自定义异常处理时遇到NotFoundException
。
当我使用MVC(使用@ControllerAdvice
)批注时,代码运行良好,但不确定当我发送违反实体(pojo类)中提到的约束的数据时,它仅抛出{{1 }}(对于所有验证失败),但不是NotFoundException
或MethodViolationException
我无法针对该特定违规发送消息。
不知道我在哪里犯这个错误。请帮助
代码:
ConstraintViolationException
POJO:
@POST
@Path("/customers/add")
public Response addCustomer(@Valid customer cust)
{
// Rest of the code
}
}
异常处理程序:
@Entity
@Table(name="cust")
public class Customer
{
@NotNull
@Size(min=1,max=50,message ="invalid name")
String name;
**更新1
如果启用了send_error_in_response,我会收到此消息,但不确定为什么我的自定义异常处理程序无法捕获此异常而仅引发NotFoundException
答案 0 :(得分:0)
尝试使用以下方法处理异常:
@ControllerAdvice
@RestController
public class CustomizedResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(StudentNotFoundException)
public final ResponseEntity<ErrorDetails> handleUserNotFoundException(StudentNotFoundException ex, WebRequest request) {
ErrorDetails errorDetails = new ErrorDetails(new Date(), ex.getMessage(),
request.getDescription(false));
return new ResponseEntity<>(errorDetails, HttpStatus.NOT_FOUND);
}
有关更多信息,您可能希望参考http://www.springboottutorial.com/spring-boot-validation-for-rest-services