我正在使用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);
}
}
答案 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."
}