Ciao a tutti, sto scrivendo un'applicazione che data una lista di Prodotti caratterizzati da nome, prezzo e codice identificativo, permette all'utente di inserire un codice id da tastiera e restituire il nome del prodotto. Se il codice non viene trovato nella lista allora si alza un eccezione con relativo messaggio di errore. Il problema è che l'eccezione non viene alzata e continua a restituirmi l'ultimo prodotto trovato nella lista dall'iteratore. Vi allego il codice del main:
codice:
do{
try{
System.out.println("Inserire codice Id del Prodotto: ");
String code = scanner.next();
prodotto = GestioneProducts.prodottoPerId(code);
esito = true;
}
catch(IllegalArgumentException e){
System.out.println(e.getMessage());
}
}while(!esito);
System.out.println(prodotto.getNome());
e del metodo di ricerca:
codice:
public static Product prodottoPerId(String id) throws IllegalArgumentException{
boolean trovato = false;
Product prodotto = null;
Iterator<Product> iter = list.iterator();
while(iter.hasNext()){
prodotto = iter.next();
if(prodotto.getId().equals(id)) trovato = true;
}
if(trovato = false){ throw new IllegalArgumentException("Errore: prodotto non trovato");}
return prodotto;
Qualcuno può aiutarmi?