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