Pessoal, estou fazendo a parte de erros de uma aplicação, e gostaria de salvar todo o stackTrace das exceptions genericas, leia-se não tratas.
Porem eu so consigo pegar em um StringBuilder a primeira parte do StackTrace
Na primeira chamada passe isCause como false e o StringBuilder que conterá a exceção. Note que nem sempre existe uma causa, então é bom mesmo testar se getCause() não retorna null.
ViniGodoy
Só de curiosidade: Como vc está está capturando as exceções não tratadas?
Usa um Thread.setDefaultUncaughtExceptionHandler?
Usa um thread.setUncaughtExceptionHandler?
Usa algum recurso do seu servidor?
Ou dá um try…catch(Throwable e) no seu main?
ViniGodoy
Se você não quiser mudar em nada o formato do StackTrace, você também pode usar um StringWriter:
public String logThrowable(Throwable thrown) {
StringWriter sw = new StringWriter();
thrown.printStackTrace(new PrintWriter(sw));
return sw.toString();
}
Note que no lugar do StringWriter, vc poderia fazer o PrintWriter escrever para um arquivo diretamente.
Felagund
é try e catch
tudo é circundado por instruções indo das Exceptions que nos conhecemos indo ate a generica Exception, e quando ocorrer Exception, pedir para notificar.
Usei com StringWriter, funcionou muito bem. Simples pratico e facil.