Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Non cattura l'eccezione

    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?

  2. #2
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    codice:
    if(trovato == false)

  3. #3
    Sono un pirla, grazie mille ... pensavo che non andasse la gestione dell'eccezione

  4. #4
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Prego!


  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,323
    Quote Originariamente inviata da minomic Visualizza il messaggio
    codice:
    if(trovato == false)

    Per evitare questi errori, bisognerebbe abituarsi ad usare la logica come si deve:

    codice:
    if (trovato == false) {
       ...
    }
    
    andrebbe scritto così
    
    if ( !trovato ) {
       ...
    }

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.