package org.jboss.seam.rest.examples.exceptions; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response.ResponseBuilder; import org.apache.deltaspike.core.api.exception.control.annotation.ExceptionHandler; import org.apache.deltaspike.core.api.exception.control.annotation.Handles; import org.jboss.solder.exception.control.CaughtException; //import org.jboss.solder.exception.control.Handles; //import org.jboss.solder.exception.control.HandlesExceptions; import org.jboss.seam.rest.exceptions.ExceptionMapping; import org.jboss.seam.rest.exceptions.RestResource; @ExceptionHandler @ExceptionMapping.List({ @ExceptionMapping(exceptionType = IllegalAccessException.class, status = 403), @ExceptionMapping(exceptionType = NullPointerException.class, status = 500, message = "NullPointerException was thrown."), @ExceptionMapping(exceptionType = RuntimeException.class, status = 500, useExceptionMessage = true)}) public class CatchExceptionHandlers { public void arithmeticExceptionHandler(@Handles CaughtException<ArithmeticException> event, @RestResource ResponseBuilder builder) { builder.status(500).entity("Cannot divide by zero. Want to divide by two instead?").type(MediaType.TEXT_PLAIN_TYPE); event.handled(); } }