Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    726

    [JAVA] Un consiglio sull'eccezione da usare

    Avrei bisogno di un paio di consigli sulle eccezione da usare in due casi distinti:

    1) ho un metodo che deve aggiungere degli elementi (stringhe) all'interno di un file.
    ad ogni elemento che vado a scrivere sul file, è associato un codice, ritornato dal metodo stesso, per confermare che l'operazione è stata eseguita con successo.
    Il codice, viene generato tramite un particolare metodo.
    Ora, quando non mi sarà più possible inserire nuovi elementi, perchè avrò esaurito tutti i codici disponibili, come devo comportarmi a seguito di una richiesta di inserimento di un nuovo elemento?
    Non posso tornare null.
    Io avevo pensato di lanciare l'eccezione IllegalStateException.
    Secondo voi questa eccezione potrebbe andare?


    2) ho un altro file, che gestisce una gerarchia di parole chiavi.
    ad ogni parola chiave è associato il proprio codice, ed il codice della parola chiave padre.
    ora, ho un metodo che passato un codice restituisce il nome della parola chiave associata.
    se passo il codice della parola chiave che rappresenta il vertice della gerarchia, ovviamente non essendo figlia di nessuno non può tornare il nome della parola chiave padre.
    Non potendo tornare null, pensavo quindi di lanciare una eccezione di tipo IllegalArgumentException.

    Che ne dite?


    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    726
    Forse per il caso 1 andrebbe bene anche MissingResourceException, se consideriamo il codice come una risorsa.

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Downloader
    Forse per il caso 1 andrebbe bene anche MissingResourceException, se consideriamo il codice come una risorsa.
    Puoi sempre creare una tua classe di eccezione, ad esempio "CodiciEsauritiException" (traduci te ). A seconda se vuoi obbligare il programmatore a gestirla la dichiari checked o unchecked.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    726
    Intanto grazie della risposta.
    Ci avevo pensato in effetti, ma non volevo aggiungere troppe classi al progetto (anche perchè non so se il prof gradisce).
    In caso facessi la classe: mi basta semplicemente creare la classe e poi estenere RuntimeException? Voglio dire, lascio la classe vuota poi?

    Mentre per il secondo caso? andrebbe bene l'eccezione che ho proposto?
    in caso di riposta negativa, se mei facessi una eccezione mia...hai un nome da suggerire?

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Per il caso 2 "IllegalArgumentException" mi sembra adatta :master: Piccola nota: il metodo deve dare eccezione anche in altri casi o solo quando richiedi il codice del vertice? Nel primo caso potresti (IMHO) differenziare l'eccezione: "NullParentException" (ad esempio) se viene richiesto il codice del vertice (che non ha padre) e "IllegalArgumentException" in tutti gli altri casi.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Downloader
    In caso facessi la classe: mi basta semplicemente creare la classe e poi estenere RuntimeException? Voglio dire, lascio la classe vuota poi?
    In linea di massima sì ma è conveniente scrivere almeno il costruttore con una stringa come argomento e passare questo al costruttore della superclasse:
    codice:
    public class CodiciEsauritiException extends RuntimeException {
      public CodiciEsauritiException(String message) {
        super(message);
      }
    }
    "message" è la stringa che viene stampata quando chiami il toString() sull'eccezione. :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

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2003
    Messaggi
    726
    Solo quando richiedo il codice del vertice.
    Se invece richiedo un codice che non esiste, torno semplicemente null.
    La cosa dell'eccezione nasce per un fatto di comodità mia futura, quando dovò usare questo metodo, altrimenti avrei fatto tornare sempre null e mi sarei tolto un problema

    Quindi IllegalParentException, oppure IllegalArgumentException sono le due scelte più logiche.

    Ok, ti ringrazio molto.
    Sei stato immensamente utile. A buon rendere!

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.