Adicionar mensagem personalizada à exceção gerada enquanto mantém o rastreamento de pilha em Java
Eu tenho um pequeno pedaço de código que executa algumas transações para processamento. Cada transação é marcada com um número de transação, que é gerado por um programa externo e não é necessariamente sequenciado. Quando eu pego uma exceção no código de processamento, estou lançando-a para a classe principal e registrando-a para revisão posterior. Gostaria de adicionar o número da transação a essa exceção lançada. É possível fazer isso enquanto ainda mantém o rastreamento de pilha correto?
Por exemplo:
public static void main(String[] args) {
try{
processMessage();
}catch(Exception E){
E.printStackTrace();
}
}
private static void processMessage() throws Exception{
String transNbr = "";
try{
transNbr = "2345";
throw new Exception();
}catch(Exception E){
if(!transNbr.equals("")){
//stack trace originates from here, not from actual exception
throw new Exception("transction: " + transNbr);
}else{
//stack trace gets passed correctly but no custom message available
throw E;
}
}
}