вы можете напрямую использовать WebApplicationException из jax-rs для выдачи исключения
Например:
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."
}