Mam mały fragment kodu, który wykonuje niektóre transakcje do przetworzenia. Każda transakcja jest oznaczona numerem transakcji, który jest generowany przez program zewnętrzny i niekoniecznie jest sekwencjonowany. Kiedy przechwycę wyjątek w kodzie przetwarzania, wrzucam go do głównej klasy i loguję do późniejszej recenzji. Chciałbym dodać numer transakcji do tego wyrzuconego wyjątku. Czy można to zrobić, zachowując jednocześnie prawidłowy ślad stosu?Dodanie niestandardowego komunikatu do wyjątku przy zachowaniu śledzenia stosu w Javie
na przykład:
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;
}
}
}
To jest dokładnie to, czego szukałem. Dzięki. – thedan