如何在邮递员中显示异常消息?

时间:2019-04-30 06:34:07

标签: java rest web-services postman

我正在使用REST Webservice Call从数据库中获取产品列表,并检查产品是否为NULL。

如果没有产品,我需要在POSTMAN中引发异常。

任何人都可以阐明如何在邮递员中显示异常消息吗?

代码:

public class ABC extends BusinessException
{
    public ABC(final String message)
    {
        super(message);
    }

    public ABC(final String message, final Throwable cause)
    {
        super(message, cause);
    }
}

1 个答案:

答案 0 :(得分:0)

您可以直接从jax-rs使用 WebApplicationException 引发异常

例如:

if(products==null){
 throw new WebApplicationException(Response.status(Response.Status.NOT_FOUND).entity("products does not exist.").build());
}

如果您有自定义异常,则可以扩展WebApplicationException

public class BusinessException extends WebApplicationException {
     public BusinessException(Response.Status status, String message) {
         super(Response.status(status)
             .entity(message).type(MediaType.TEXT_PLAIN).build());
     }
}

从您的代码中抛出

 if(products==null){
      throw new BusinessException(Response.Status.NOT_FOUND,"products does not exist.");
 }

您可以使用错误响应对象来显示干净的方式

public class ErrorResponse {
  private int status;
  private String message;
  ErrorResponse(int status,String message){
     this.status = status;
     this.message = message;
  }
//setters and getters here
}

在引发异常的同时创建ErrorResponse对象

public class BusinessException extends WebApplicationException {
     public BusinessException(Response.Status status, String message) {
         super(Response.status(status)
             .entity(new ErrorResponse(status.getStatusCode(),message)).type(MediaType.APPLICATION_JSON).build());
     }
}

在邮递员中,它将显示如下

{
  status:404,
  message:"products does not exist."
}