Agregue un mensaje personalizado a la excepción lanzada mientras mantiene el seguimiento de la pila en Java
Tengo una pequeña pieza de código que se ejecuta a través de algunas transacciones para su procesamiento. Cada transacción está marcada con un número de transacción, que es generado por un programa externo y no está necesariamente secuenciado. Cuando detecto una excepción en el código de procesamiento, se la entrego a la clase principal y la registro para revisarla más tarde. Me gustaría agregar el número de transacción a esta Excepción lanzada. ¿Es posible hacer esto mientras se mantiene el seguimiento de pila correcto?
Por ejemplo:
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;
}
}
}