Добавление настраиваемого сообщения в выброшенное исключение при сохранении трассировки стека в 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;
}
}
}