Boa noite galera,
Existe uma maneira de tratar as exceptions no vRaptor e evitar o erro 500 ?,
pois ja tentei de todas as formas e não consigo capturar o erro para tratar.
sempre ele retorna erro 500
br.com.caelum.vraptor.InterceptionException: java.lang.IllegalArgumentException
Obrigado.
Olá veja só como eu fiz.
mesmo assim ele não trata o erro continua jogando erro 500.
meu metodo recebe 2 inteiros e estou simulando um erro passando uma string o que é super normal pois o usuario pode querer passar qualquer coisa na URL, mas ta dificil esse tratamento.
Ao invés de apenas analisar a exception, você leu a mensagem dela? IllegalArgumentException pode ser muitas coisas, talvez até antes do exception handler atuar.
Você está passando argumentos inválidos? A injeção acontece antes de entrar no método, sendo assim o exception handler não terá feito, pois acontece tudo antes dele agir.
Vocẽ precisa usar o objeto Validation para dizer para onde você quer ir em caso de erro. Isso está na documentação. Estou sem conseguir fazer a pesquisa agora.
Então para validar o valor injetado só usando Interceptors ?
o que está acontecendo é isso mesmo, propositalmente estou passando argumentos inválidos, testando um possivel erro vindo do usuário.
se o tratamento é genérico (em qqer request), o melhor jeito talvez seja um interceptor com um try…catch na exception mesmo