JAX-RS / Jersey como personalizar o tratamento de erros?

Estou aprendendo JAX-RS (também conhecido como JSR-311) usando Jersey. Criei com êxito um Recurso Raiz e estou brincando com os parâmetros:

@Path("/hello")
public class HelloWorldResource {

    @GET
    @Produces("text/html")
    public String get(
        @QueryParam("name") String name,
        @QueryParam("birthDate") Date birthDate) {

         // Return a greeting with the name and age
    }
}

Isso funciona muito bem e lida com qualquer formato no código de idioma atual que seja entendido pelo construtor Date (String) (como AAAA / mm / dd e mm / dd / AAAA). Mas se eu fornecer um valor inválido ou não compreendido, recebo uma resposta 404.

Por exemplo

GET /hello?name=Mark&birthDate=X

404 Not Found

Como posso personalizar esse comportamento? Talvez um código de resposta diferente (provavelmente "400 Solicitação incorreta")? Que tal registrar um erro? Talvez adicione uma descrição do problema ("formato de data inválido") em um cabeçalho personalizado para ajudar na solução de problemas? Ou retorne uma resposta de erro inteira com detalhes, junto com um código de status 5xx?

questionAnswers(8)

yourAnswerToTheQuestion