Opa,
Uso o vraptor à algum tempo, me interessei pela feature de Exception Handler do Vraptor(http://vraptor.caelum.com.br/documentacao/exception-handling/).
Quando você usa:
result.on(MinhaException.class).redirectTo(C).metodoDeTratamentoQualquer();
Você esta informando ao vraptor que se a exceção “MinhaException” for lançada, que o fluxo seja redirecionado para o controlador “C” e invocado o método “metodoDeTratamentoQualquer” correto?
Minha dúvida é: Como que eu acesso a exception lançado no método/view de tratamento informado?
Eu abri o codigo fonte do interceptor e percebi que ele registrar algumas variáveis na response do servelet(?).
...
// add error attributes compliance with servlet spec
result.include("javax.servlet.error.status_code", 500);
result.include("javax.servlet.error.exception", rootCause);
result.include("javax.servlet.error.exception_type", rootCause.getClass());
result.include("javax.servlet.error.message", rootCause.getMessage());
result.include("javax.servlet.error.request_uri", request.getRequestURI());
...
Então eu consegui tratar a exception no método de tratamento utlizando.
result.included().get("javax.servlet.error.exception")
É assim que devo fazer?
obrigado.