Se eu tenho uma API, e o cliente da API envia o JSON com um formato incorreto, o JAX-RS joga uma exceção (JsonbException). Segue abaixo um exemplo de um json inválido para enviar no nosso POST (falta uma vírgula depois do endereço de e-maol):
{
"agendado": false,
"assunto": " alura teste 2",
"email": "blablablas@gmail.com"
"mensagem": " segundo teste de envio de email projeto jakartaee"
}
A mensagem retornada:
javax.ws.rs.ProcessingException: RESTEASY008200: JSON Binding deserialization error: javax.json.bind.JsonbException:
Internal error: Invalid token=STRING at (line no=5, column no=14, offset=111). Expected tokens are: [COMMA]
Mas isso não é o ideal. Em uma situação real seria interessante ter uma mensagem tratada e talvez até gravar algum log. E como o erro vem em texto puro, poderia até "quebrar" um client que espera uma resposta json. No caso do servlet, o comando responsável por converter a string em um objeto json poderia estar envolvido em um try-catch, e dentro do catch seria feito o tratamento. Minha dúvida é: como eu "capturo" essa exceção para fazer um tratamento com ela no caso do JAX-RS?