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:
e del metodo di ricerca: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());
Qualcuno può aiutarmi?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;

Rispondi quotando