Estou fazendo um contentor de Erros, para receber em meu e-mail através de um Interceptor.
Em ColdFusion temos um sistema que analisa qualquer objeto em sua estrutura, e gostaria de saber como receber isso, como pegar essas informações:
Exemplo:
Se no método AdicionarCliente(Cliente cliente){} der um erro, quero ter o Erro com todas as informações, e quero ter as informações que estão contidas no cliente.
Obrigado Garcia,
Mas mesmo assim eu não conseguiria saber todos os dados do objeto que se passa para o método, concorda?
Preciso entender o que o meu cliente digitou de errado, em caso de erros!
Se não me engano estas duas libs estão inclusas no VRator.
G
garcia-jj
robertouba:
Obrigado Garcia,
Mas mesmo assim eu não conseguiria saber todos os dados do objeto que se passa para o método, concorda?
Preciso entender o que o meu cliente digitou de errado, em caso de erros!
Se não me engano estas duas libs estão inclusas no VRator.
Não concordo. Log é log sempre, não importa qual appender. Você pode escrever o que quiser lá dentro. Pode ser como no meu exemplo onde coloco uma String fixa e outro com o nome do cliente. No teu caso você pode colocar mais informações, e quem sabe até um dump do objeto através do BeanUtils. Só tenha cuidado para não fazer dump de senhas e outras informações sigilosas.
Bom essa parte eu imaginei…
Por exemplo, digamos que o cliente tenha digitado Virgula(",") em vez de Ponto(".")no campo de saldo (suponhamos que eu não trate essas coisas no client-side ou no server-side) então quando for para o banco retornará erro, com a mensagem do banco eu sei que tenho um erro, claro, porém eu gostaria de saber a estrutura total de um determinado objeto.
Obtendo um retorno para este erro parecido
Só cuidado pra fazer esse envio de emails de forma assíncrona, senão o cara além de receber o erro 500 vai ter que ficar esperando o email ser enviado.
Não sei se vc percebeu mas vc está transformando em xml o nome da classe dos parâmetros
se vc quer os parâmetros reais, receba um MethodInfo no construtor e use info.getParameters()
robertouba
Obrigado Lucas, vou alterar
Geralmente eu trato todos os erros, apenas quero esse erro para coisas que eu não tratei, ou talvez fosse melhor mesmo que eu tirasse os tratamentos e deixassem todos acima.
Em coldFusion temos uma tag chamada <CFDUMP VAR="#variavel#">, ele simplesmente escreve em table todas as informações desta variável, erro, e etc… fica realmente muito bom para ler, e com informações completas tanto de erro, quanto do objeto.