Olá pessoal, quando eu estou dentro de um bloco catch e chamo o metodo printStackTrace() do objeto da classe de excecao é mostrado no console do servidor de aplicação toda a pilha de metodos percorridos até se chegar ao erro, no entanto, eu queria pegar este conteudo e jogar dentro de uma string. Alguem sabe como posso fazer isso, pois somente o getMessage() não adianta, eu queria especificamente era pegar o nome da exceçao e a linha em que ocorreu.
Desde já agradeço a todos.
Spranta
Pegar o conteudo do printStackTrace()
3 Respostas
StringWriter strWriter = new StringWriter();
PrintWriter writer = new PrintWriter(strWriter);
t.printStackTrace(writer);
writer.close();
Rafael
Você pode usar o metodo getStackTrace() que te retorna uma matriz com a pilha.
Você pode iterar nessa matriz e obter as informações que você precisa.
try{
throw new Exception();
}catch(Exception e){
StackTraceElement[] stack = e.getStackTrace();
stack[0].getLineNumber();
stack[0].getFileName();
stack[0].getMethodName();
}
StringWriter strWriter = new StringWriter(); PrintWriter writer = new PrintWriter(strWriter); t.printStackTrace(writer); writer.close();Rafael
Apenas para complementar o exemplo:
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter);
e.printStackTrace(printWriter);
StringBuffer erro = stringWriter.getBuffer();
printWriter.close();
stringWriter.close();
System.out.println("Stack Trace do erro: " + erro.toString());
Eu mesmo nao saquei imediatamente como tirava a stack trace do PrintWriter/StringWriter depois de armazenar. :mrgreen:
Marcio Kuchma
Criado 16 de fevereiro de 2004
Ultima resposta 17 de fev. de 2004
Respostas 3
Participantes 4