Pagina 1 di 1
[java] aiuto nel lanciare le eccezioni
Inviato: giovedì 6 marzo 2008, 15:03
da misterxxitalia
ciao a tutti ho bisogno di 2 aiuti tutti e due riguardanti il lancio della mia eccezione
Codice: Seleziona tutto
public void setAffinita(String Affinita) throws InserimentoErratoException, IOException{
if (Affinita!="conoscente"|| Affinita!="amico"||Affinita!="parente"||Affinita!="amicone"||Affinita!="amicissimo") throw new InserimentoErratoException();
else this.affinita = Affinita;
in pratica se la stringa Affinita è diversa da amico parente ec deve lanciare l'eccezione..il problema che cosi la lancia sempre!!
e poi qui....
Codice: Seleziona tutto
public void addNominativo (Rubrica n)throws InserimentoErratoException
{
if (!(nominativi.contains(n)))nominativi.add(n);
else throw new InserimentoErratoException();
come faccio ad interrompere completamente il normale flusso del programma?perche l'eccezione viene lanciata ma il prog nn si ferma...grazie!!
Re: [java] aiuto nel lanciare le eccezioni
Inviato: giovedì 6 marzo 2008, 15:37
da boymask2000
Il confronto tra stringhe è errato.
Bisogna usare il metodo equals() della classe String.
Quindi
if( !Affinita.equals("conoscente") )
etc....
Re: [java] aiuto nel lanciare le eccezioni
Inviato: giovedì 6 marzo 2008, 15:42
da sparazza
come detto da boymask le stringhe si confrontano con equals, inoltre per gestire meglio le eccezioni ti consiglio di usare try catch. Poi se non ho capito male vuoi interrompere l'esecuzione del programma che se non sbaglio dovrebbe essere System.exit(0); . se invece volessi interrompere solo un ciclo while o simili, break(); dovrebbe fare a caso tuo
Saluti
Sparazza
Re: [java] aiuto nel lanciare le eccezioni
Inviato: giovedì 6 marzo 2008, 16:15
da misterxxitalia
ho scritto cosi...
Codice: Seleziona tutto
public void setAffinita(String Affinita) throws InserimentoErratoException, IOException{
if (( !Affinita.equals("conoscente") )||( !Affinita.equals("amico") )||( !Affinita.equals("parente") )||( !Affinita.equals("amicone") )||( !Affinita.equals("amicissimo") ))
throw new InserimentoErratoException();
this.affinita = Affinita;
}
ma l'eccezione la manda comunque....e poi l metodo equals non trova quelle lettere in una frase??esempio se io ho
amicohghygiyh
trovera la parola amico ma io questa stringa nn la posso accettare...poi System.exit(0)...dove lo vado a mettere??grazie dell'aiuto!!
Re: [java] aiuto nel lanciare le eccezioni
Inviato: giovedì 6 marzo 2008, 17:40
da Dahman
ma l'eccezione la manda comunque....
La condizione dopo la if é sempre true perché l'operatore logico é sbagliato.
Deve essere && (and) e non || (or).
Ciao
Dahman
Re: [java] aiuto nel lanciare le eccezioni
Inviato: giovedì 6 marzo 2008, 18:23
da misterxxitalia
no ho provato con gli && ma l'eccezione non viene mai lanciata (ho provato a dare una stringa qualsiasi...)
Re: [java] aiuto nel lanciare le eccezioni
Inviato: giovedì 6 marzo 2008, 19:12
da daemon_nio
Codice: Seleziona tutto
public void setAffinita(String Affinita) throws InserimentoErratoException, IOException
{if ( ! ( Affinita.equals("conoscente") || Affinita.equals("amico") || Affinita.equals("parente") || Affinita.equals("amicone") ||Affinita.equals("amicissimo") ) )
{throw new InserimentoErratoException();
}
else
{this.affinita = Affinita;
}
}
Nel codice
Codice: Seleziona tutto
try
{tuoOggetto.setAffinita("amico");
}
catch (InserimentoErratoException iee)
{System.out.println("Eccezione InserimentoErratoException catturata... esco");
System.exit(0);
}
così credo che dovrebbe andare

Re: [java] aiuto nel lanciare le eccezioni
Inviato: giovedì 6 marzo 2008, 20:32
da misterxxitalia
ti ringrazio!!ho un altro controllo in pratica devo vedere se inserisco un numero di telefono...vorrei farci mettere solo numeri....che metodo posso usare?
Re: [java] aiuto nel lanciare le eccezioni
Inviato: venerdì 7 marzo 2008, 12:37
da daemon_nio
Long.parseLong,
Int.parseInt,
Sono metodi statici di una classe, se non sai cosa sono vatteli a guardare. Non sono nulla di che... dei metodi che puoi richiamare su di un oggetto senza istanziarlo.
Ma hai scaricato la documentazione Java?
Quella 1.5.0 puoi trovarla [url=http://"http://java.sun.com/j2se/1.5.0/docs/index.html"]qui[/url].
Puoi scaricarla (link in alto a destra) e tenerla sull'hard disk del tuo computer. E' di base per programmare Java... pensa che all'esame di programmazione II all'università a noi la fanno tenere. Proprio perché è impossibile programmare senza di essa.
Ciao
Re: [java] aiuto nel lanciare le eccezioni
Inviato: venerdì 7 marzo 2008, 22:38
da misterxxitalia
scusa ho chiesto perche un numero di telefono non puo essere un intero e nn credo neanche un long....c'è un metodo che accetta solo numeri?scusa se te lo chiedo ma sulla documentazione ci sono tutti i metodi è vero...ma se nn sai cosa cercare!! (mad)
Re: [java] aiuto nel lanciare le eccezioni
Inviato: venerdì 7 marzo 2008, 22:47
da simo_magic
misterxxitalia ha scritto:
scusa ho chiesto perche un numero di telefono non puo essere un intero e nn credo neanche un long....
non può esser un intero per un semplice motivo
prova a salvare questo numero
02 123456
quando dai:
Integer.parseInt("02123456");
lo zero "magicamente" scompare
perciò il numero di telefono deve per forza essere una stringa
Re: [java] aiuto nel lanciare le eccezioni
Inviato: venerdì 7 marzo 2008, 22:55
da misterxxitalia
nn c'è qualche metodo per permettere di inserire solo numeri allora?poi se nn chiedo troppo....la classe calendar come faccio a capire se la data che inserisco è una data reale?
Re: [java] aiuto nel lanciare le eccezioni
Inviato: venerdì 7 marzo 2008, 23:08
da simo_magic
misterxxitalia ha scritto:
nn c'è qualche metodo per permettere di inserire solo numeri allora?poi se nn chiedo troppo....la classe calendar come faccio a capire se la data che inserisco è una data reale?
certo
basta costringere il programma a richiedere dei valori corretti con dei cicli
se il programma ha una gui basta costringere la gui ad accettare solo alcuni valori numerici ad esempio

Re: [java] aiuto nel lanciare le eccezioni
Inviato: venerdì 7 marzo 2008, 23:12
da misterxxitalia
niente gui solo riga di comando!!hai un esempio in mente??
Re: [java] aiuto nel lanciare le eccezioni
Inviato: venerdì 7 marzo 2008, 23:19
da simo_magic
se l'intero deve essere compreso tra 1 e 10 ad esempio
do{
System.out.print("blablabla");
try{
int n=Integer.parseInt(nomestreaminput.readLine());
}
catch(Exception e){}
while(n10);
esempio da 2 minuti però così gestisci le eccezioni e costringi l'utente ad inserire un numero compreso tra 1 e 10
Re: [java] aiuto nel lanciare le eccezioni
Inviato: venerdì 7 marzo 2008, 23:23
da Massimo S.
misterxxitalia ha scritto:
ti ringrazio!!ho un altro controllo in pratica devo vedere se inserisco un numero di telefono...vorrei farci mettere solo numeri....che metodo posso usare?
Per fare sta cosa si potrebbero usare anche le espressioni regolari.
Sono molto potenti, però richiedono un po di tempo di studio per capire come funzionano.
Per iniziare vedi
http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/Pattern.html