Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    143

    [Java] metodo con eccezione

    Ciao! nel progetto che devo realizzare devo creare un metodo di una classe che chiamo classe A, il quale metodo

    deve avere questa signatura:

    codice:
    public int get(String var)
    e deve fare ciò:

    nella classe A esiste una struttura dati, una LinkedList per la precisione, composta di oggetti Element, un'altra

    classe da me creata, che non sono altro che oggetti con 2 campi, variabile-valore.
    Il parametro var del metodo get indica il nome della variabile, e il metodo controlla se tale variabile è presente

    nella lista, restituendo il valore ad essa associata, altrimenti deve sollevare una IllegalArgumentException.

    Il mio dubbio sta proprio qui: non riesco a capire come gestire questa eccezione, in quanto comunque vada, il

    metodo, vista la signatura, deve avere un return per restituire qualcosa, però se la var non c'è devo fare una

    eccezione e immagino vada rilanciata per farla gestire dalla classe che ha il riferimento all'oggetto della classe

    A, in modo che non si pianti tutto ma che venga usata l'eccezione per segnalare all'utente che la var non è

    presente.

    Io avevo pensato ad una cosa di questo tipo:

    codice:
    public int get(String var)
        {
            int tmp = -1;// prendera' il valore da restituire
            try
            {
                for(int i=0; i<memElements.size(); i++)// scorro la lista
                {
                    if(memElements.get(i).getVar() == var)// guardo se c'e' quella var
                    {
                        tmp = memElements.get(i).getVal();// restituisco il valore intero
                    }      
                }
            // se la variabile non e' presente si solleva un'eccezione
            }catch(IllegalArgumentException e)
            {
                throw e;
            }
            return tmp;
        }
    Non credo che sia corretto però il modo con cui sollevo l'eccezione, ma non capisco come controllare per

    sollevarla. Poi appunto c'è il problema del return, anche perché nella classe per esempio B che ha un oggetto A,

    devo gestire un int di ritorno ma anche una eventuale exception.

    Qualcuno mi sa dare qualche consiglio?
    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    1. 'var' è una stringa e le stringhe non si confrontano con == ma con equals. Oppure converti la stringa in intero.
    2.

    codice:
        public int get(String var) thorws IllegalArgumentException {
            int tmp = -1;
    
            for(int i = 0; i < memElements.size(); i++) {
                if(memElements.get(i).getVar() == Integer.parseInt(var)) {
                    tmp = memElements.get(i).getVal();
                }      
            }
    
            if (tmp == -1) {
                throw new IllegalArgumentException();
            }
    
            return tmp;
        }

    Però non ha molto senso lanciare un eccezione, sarebbe meglio restituire il -1 :master:
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    143
    Si, è vero che si usa equals, grazie per la precisazione
    .
    Purtroppo anche io sono abituato a far comunicare i metodi e le classi con dei numeri, delle variabili booleane ecc... ma sono le specifiche che a questo giro mi impongono di usare tale eccezione

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da namek
    Purtroppo anche io sono abituato a far comunicare i metodi e le classi con dei numeri, delle variabili booleane ecc... ma sono le specifiche che a questo giro mi impongono di usare tale eccezione
    Ah ok

    Mi sono accorto di aver scritto thorws anzichè throws
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    143
    Tranquillo non preoccuparti per l'errore di battitura. Grazie ancora per i consigli, ero totalmente sulla strada sbagliata, adesso ho chiaro quello che devo scrivere.

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.