blob: 1bed6cb49da707507bed997450165bf248442cb6 [file] [log] [blame]
/*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the "License"). You may not use this file except
* in compliance with the License.
*
* You can obtain a copy of the license at
* http://www.opensource.org/licenses/cddl1.php
* See the License for the specific language governing
* permissions and limitations under the License.
*/
package javax.ws.rs.ext;
import javax.ws.rs.core.Response;
/**
* Contract for a provider that maps Java exceptions to
* {@link javax.ws.rs.core.Response}. An implementation of this interface must
* be annotated with {@link Provider}.
*
* @see Provider
* @see javax.ws.rs.core.Response
*/
public interface ExceptionMapper<E extends Throwable> {
/**
* Map an exception to a {@link javax.ws.rs.core.Response}. Returning
* {@code null} results in a {@link javax.ws.rs.core.Response.Status#NO_CONTENT}
* response. Throwing a runtime exception results in a
* {@link javax.ws.rs.core.Response.Status#INTERNAL_SERVER_ERROR} response
* @param exception the exception to map to a response
* @return a response mapped from the supplied exception
*/
Response toResponse(E exception);
}