[VRaptor] Tratar exceções durante binding dos parametros de um Controller
8 respostas
Mikhas
Ahe galera!
Nos seters das minhas classes de negócio eu ja faço a validação de alguns campos e jogo exeções no caso de algum valor invalido.
Gostaria de sabe como posso capturar essas exeções e retornar para o formulario anterior no lugar de receber uma exception na tela (error 500).
anote as classes das suas exceções com @ValidationException, assim o VRaptor vai adicionar erros de validação ao invés de lançar as exceções
Mikhas
Funcionou!
Tem como eu pegar o erro de cada campo??? por exemplo errors[‘obj.campo’]
Lucas_Cavalcanti
isso, estará dentro do errors,
error.category vai ser o nome do parametro que vc tava tentando setar
error.message vai ser a mensagem da exception
[]'s
bglbruno
Galera, aproveitando o tópico, estou querendo fazer o mesmo. Não quero receber um Error 500 na tela.
Por exemplo, eu tenho um método add em um controller, e ao tentar adicionar por alguma razão que seja, é lançada uma exception AdicionarException.
Pra eu não receber o Error 500 na tela, eu devo anotar essa AdicionarException com @ValidationException? Pois eu anotei, mas não deu certo.
Devo tratar com try e catch mesmo?
Lucas_Cavalcanti
pro @ValidationException funcionar ele tem que ser lançado em algum dos setters dos caras que são recebidos no método do controller (preenchidos com parametros do request)
bglbruno
Entendi Lucas, é que no meu caso é diferente, não é um exception lançada por não passar na validação, e sim por algum outro motivo, erro de conexão, algo assim, entendeu?
Há alguma forma de não receber o erro 500 sem precisar tratar com try e catch no controller?
Lucas_Cavalcanti
ao invés de dar erro 500 vc quer fazer o que? erro de validação?
vc pode fazer um try…catch num interceptor e fazer o que vc quer…
só cuidado pq a exception pode estar encapsulada dentro de um InterceptionException
bglbruno
Tem razão, verdade cara, posso fazer um interceptor!
Vou testar aqui!