Java 如何通过API响应使用Postman发出的请求,以适当的错误消息进行响应

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

我创建了一个包含所有crud操作的restful Api。当我测试get employee By id时,我无法显示错误消息。即使我在该id的记录不存在时抛出异常

这是我的控制器代码

    @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"
}
  • 为模型包下的错误消息创建一个类
  • 2.在异常包下创建自定义异常类并生成串行版本UID

    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);
    }
    }
    
  • 为模型包下的错误消息创建一个类
  • 2.在异常包下创建自定义异常类并生成串行版本UID

    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错误显示自定义错误消息吗?如果您使用的是自定义异常。建议您查看此帖子: