package org.deephacks.westty.jaxrs;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;
@Provider
public class TestExceptionMapper implements ExceptionMapper<Exception> {
private Logger logger = LoggerFactory.getLogger(TestExceptionMapper.class);
@Override
public Response toResponse(Exception exception) {
final Response response;
if (exception instanceof IllegalArgumentException) {
response = Response.status(Status.BAD_REQUEST).entity(exception.getMessage()).build();
} else {
logger.warn("Unexpected {} with message {}", exception.getClass().getName(), exception.getMessage());
response = Response.serverError().entity(exception.getMessage()).build();
}
logger.debug("Uncaught exception. ", exception);
return response;
}
}