Gestione eccezioni

di il
4 risposte

Gestione eccezioni

Buongiorno,
ho copiato un esempio da un testo ma il risultato non è quello atteso.
Questi sono i tre file:
public class EsempioEccezioniPersonalizzate {

    public static void main(String[] args){
        Utente u=new Utente("pippo");
        u.setPassword("pluto");
    }
}
public class PasswordTroppoCortaException{
    public PasswordTroppoCortaException(String motivo){
    super(motivo);
}
}
public class Utente{
public String username;
public String password;


    public Utente(String username)
{
    this.username=username;
}
public void setPassword(String password){
    if(password.length()<10)
    throw new PasswordTroppoCortaException("La password contiene solo " +password.length()+ " caratteri" );
    else
    this.password=password;
}
}
Mi restituisce "Exception in thread "main" java.lang.Error: Unresolved compilation problem:
No exception of type PasswordTroppoCortaException can be thrown; an exception type must be a subclass of Throwable"

invece di " Exception in thread "main" PasswordTroppoCortaException: La password contiene solo 5 caratteri"

Del resto, anche inserendo una password di oltre 10 caratteri il programmino non gira.

Grazie

4 Risposte

  • Re: Gestione eccezioni

    No exception of type PasswordTroppoCortaException can be thrown; an exception type must be a subclass of Throwable"
    Le parole magiche sono
    an exception type must be a subclass of Throwable"
  • Re: Gestione eccezioni

    Intanto
    class PasswordTroppoCortaException extends Exception
    poi dovrai aggiungere i vari
      throws PasswordTroppoCortaException 
  • Re: Gestione eccezioni

    antragorn ha scritto:


    public class PasswordTroppoCortaException{
        public PasswordTroppoCortaException(String motivo){
        super(motivo);
    }
    }
    Non è completa. Una classe di eccezione "personalizzata" deve derivare da un'altra eccezione (tipicamente una predefinita del framework o un'altra tua), da Throwable in giù.
    In pratica devi scegliere la eccezione da estendere e devi ANCHE stabilire se la tua eccezione dovrà essere "checked" oppure "unchecked" e ovviamente devi conoscere questi due concetti.
  • Re: Gestione eccezioni

    Grazie,
    proverò a lavorarci su.
Devi accedere o registrarti per scrivere nel forum
4 risposte