Добавление настраиваемого сообщения в выброшенное исключение при сохранении трассировки стека в Java

У меня есть небольшой кусок кода, который проходит через некоторые транзакции для обработки. Каждая транзакция помечается номером транзакции, который генерируется внешней программой и не обязательно упорядочен. Когда я ловлю исключение в коде обработки, я выбрасываю его в основной класс и записываю его для последующего просмотра. Я хотел бы добавить номер транзакции к этому выброшенному исключению. Возможно ли сделать это, сохраняя правильную трассировку стека?

Например:

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;
        }
    }
}

Ответы на вопрос(6)

Ваш ответ на вопрос