Java 如何通过API响应使用Postman发出的请求,以适当的错误消息进行响应
我创建了一个包含所有crud操作的restful Api。当我测试get employee By id时,我无法显示错误消息。即使我在该id的记录不存在时抛出异常 这是我的控制器代码Java 如何通过API响应使用Postman发出的请求,以适当的错误消息进行响应,java,spring-boot,exception,postman,Java,Spring Boot,Exception,Postman,我创建了一个包含所有crud操作的restful Api。当我测试get employee By id时,我无法显示错误消息。即使我在该id的记录不存在时抛出异常 这是我的控制器代码 @GetMapping("/employee/{id}") public ResponseEntity<Employee> getEmployeeById(@PathVariable("id") long employeeId) throws ResourceNotFoundExcept
@GetMapping("/employee/{id}")
public ResponseEntity<Employee> getEmployeeById(@PathVariable("id") long employeeId) throws ResourceNotFoundException{
Employee employee=service.getEmployeeById(employeeId).orElseThrow(()->new ResourceNotFoundException("Employee not found for this id :"+employeeId));
return new ResponseEntity<Employee>(employee, HttpStatus.OK);
还有我的邮递员错误信息
{
"timestamp": "2020-05-19T06:21:10.172+00:00",
"status": 404,
"error": "Not Found",
"message": "",
"path": "/api/v1/employee/2"
}
public class ResourceNotFoundException extends RuntimeException{
/**
*
*/
private static final long serialVersionUID = -2491065979792776613L;
public ResourceNotFoundException(String msg)
{
super(msg);
}
}
3.在exception包下创建ExceptionHandler类
@RestControllerAdvice
public class ResourceNotFoundExceptionHandler {
@ExceptionHandler(ResourceNotFoundException.class)
public ResponseEntity<ErrorMessage> toResponse(ResourceNotFoundException ex)
{
ErrorMessage errorMessage=new ErrorMessage(ex.getMessage(),404,"www.benz.com");
return new ResponseEntity<ErrorMessage>(errorMessage,HttpStatus.NOT_FOUND);
}
}
@RestControllerAdvice
公共类ResourceNotFoundExceptionHandler{
@ExceptionHandler(ResourceNotFoundException.class)
公众响应响应能力(ResourceNotFoundException ex)
{
ErrorMessage ErrorMessage=新的ErrorMessage(例如getMessage(),404,“www.benz.com”);
返回新的响应属性(errorMessage,HttpStatus.NOT_FOUND);
}
}
public class ResourceNotFoundException extends RuntimeException{
/**
*
*/
private static final long serialVersionUID = -2491065979792776613L;
public ResourceNotFoundException(String msg)
{
super(msg);
}
}
3.在exception包下创建ExceptionHandler类
@RestControllerAdvice
public class ResourceNotFoundExceptionHandler {
@ExceptionHandler(ResourceNotFoundException.class)
public ResponseEntity<ErrorMessage> toResponse(ResourceNotFoundException ex)
{
ErrorMessage errorMessage=new ErrorMessage(ex.getMessage(),404,"www.benz.com");
return new ResponseEntity<ErrorMessage>(errorMessage,HttpStatus.NOT_FOUND);
}
}
@RestControllerAdvice
公共类ResourceNotFoundExceptionHandler{
@ExceptionHandler(ResourceNotFoundException.class)
公众响应响应能力(ResourceNotFoundException ex)
{
ErrorMessage ErrorMessage=新的ErrorMessage(例如getMessage(),404,“www.benz.com”);
返回新的响应属性(errorMessage,HttpStatus.NOT_FOUND);
}
}
您的异常是否会在堆栈跟踪中抛出?您的问题是,是否希望显示带有适当HTTP错误的自定义错误消息?如果您使用的是自定义异常。建议你看这篇文章:你的异常是否在堆栈跟踪中抛出?你的问题是,你想用适当的HTTP错误显示自定义错误消息吗?如果您使用的是自定义异常。建议您查看此帖子: