I dont know how it is in grails, but this helps in java with dropwizard 0.7.1 run() method:
ResourceConfig jrConfig = environment.jersey().getResourceConfig();
environment.jersey().register(new RestErrorsHandler(jrConfig ));
Create this class for the mapping of exceptions -> give back an individual response!
@Provider
public class RestErrorsHandler implements ExceptionMapper<Exception> {
/**
 * Deletes all ExpetionMappers.
 * 
 * @param jrConfig
 */
public RestErrorsHandler(
    ResourceConfig jrConfig)
{
    // Remove all of Dropwizard's custom ExceptionMappers
    Set<?> dwSingletons = jrConfig.getSingletons();
    List<Object> singletonsToRemove = new ArrayList<Object>();
    for (Object s : dwSingletons) {
            // Remove all Exception mappers
            if (s instanceof ExceptionMapper) {
                singletonsToRemove.add(s);
            }
    }
    for (Object s : singletonsToRemove) {
        jrConfig.getSingletons().remove(s);
    }
}
public Response toResponse(
    Exception exception)
{   
    //Handle different exceptions in another way
    if (exception.getClass().equals(JsonParseException.class)){
        Response response = RestErrorsHandler.generalResponse(exception);
        return response ;
    } else if(exception.getClass().equals(JsonParseException.class)){
        Response response = RestErrorsHandler.generalResponse(exception);
        return response ;
    } else if(exception.getClass().equals(Class.class)){
        Response response = RestErrorsHandler.generalResponse(exception);
        return response ;
    }
    //genral problem -> output default
    Response response = RestErrorsHandler.generalResponse(exception);
    return response ;
}
public static Response generalResponse(Exception exception)
{
    return Response.status(Status.BAD_REQUEST).type(MediaType.TEXT_PLAIN)
        .entity("if you just want to give back a string, but could also be default html page or whatever").build();
}
}