[java] aiuto nel lanciare le eccezioni

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
misterxxitalia
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 838
Iscrizione: domenica 11 marzo 2007, 22:15

[java] aiuto nel lanciare le eccezioni

Messaggio 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!!
Avatar utente
boymask2000
Prode Principiante
Messaggi: 159
Iscrizione: venerdì 11 agosto 2006, 10:06
Contatti:

Re: [java] aiuto nel lanciare le eccezioni

Messaggio da boymask2000 »

Il confronto tra stringhe è errato.
Bisogna usare il metodo equals() della classe String.
Quindi
if( !Affinita.equals("conoscente") )

etc....
Ubuntu User # 20152
Avatar utente
sparazza
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1117
Iscrizione: giovedì 8 febbraio 2007, 14:47
Distribuzione: Ubuntu Precise
Contatti:

Re: [java] aiuto nel lanciare le eccezioni

Messaggio 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
misterxxitalia
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 838
Iscrizione: domenica 11 marzo 2007, 22:15

Re: [java] aiuto nel lanciare le eccezioni

Messaggio 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!!
Dahman
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1013
Iscrizione: mercoledì 31 ottobre 2007, 8:29
Località: Torino

Re: [java] aiuto nel lanciare le eccezioni

Messaggio 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
misterxxitalia
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 838
Iscrizione: domenica 11 marzo 2007, 22:15

Re: [java] aiuto nel lanciare le eccezioni

Messaggio da misterxxitalia »

no ho provato con gli && ma l'eccezione non viene mai lanciata (ho provato a dare una stringa qualsiasi...)
Avatar utente
daemon_nio
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1012
Iscrizione: lunedì 15 gennaio 2007, 14:18
Sesso: Maschile
Località: London
Contatti:

Re: [java] aiuto nel lanciare le eccezioni

Messaggio 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 ;)
Ultima modifica di daemon_nio il giovedì 6 marzo 2008, 19:14, modificato 1 volta in totale.
Sempre costruendo qualcosa di nuovo: Matag: The Game
misterxxitalia
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 838
Iscrizione: domenica 11 marzo 2007, 22:15

Re: [java] aiuto nel lanciare le eccezioni

Messaggio 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?
Avatar utente
daemon_nio
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1012
Iscrizione: lunedì 15 gennaio 2007, 14:18
Sesso: Maschile
Località: London
Contatti:

Re: [java] aiuto nel lanciare le eccezioni

Messaggio 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
Sempre costruendo qualcosa di nuovo: Matag: The Game
misterxxitalia
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 838
Iscrizione: domenica 11 marzo 2007, 22:15

Re: [java] aiuto nel lanciare le eccezioni

Messaggio 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)
Avatar utente
simo_magic
Rampante Reduce
Rampante Reduce
Messaggi: 9496
Iscrizione: lunedì 18 dicembre 2006, 21:37
Località: Piemonte

Re: [java] aiuto nel lanciare le eccezioni

Messaggio 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
misterxxitalia
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 838
Iscrizione: domenica 11 marzo 2007, 22:15

Re: [java] aiuto nel lanciare le eccezioni

Messaggio 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?
Avatar utente
simo_magic
Rampante Reduce
Rampante Reduce
Messaggi: 9496
Iscrizione: lunedì 18 dicembre 2006, 21:37
Località: Piemonte

Re: [java] aiuto nel lanciare le eccezioni

Messaggio 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 ;)
misterxxitalia
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 838
Iscrizione: domenica 11 marzo 2007, 22:15

Re: [java] aiuto nel lanciare le eccezioni

Messaggio da misterxxitalia »

niente gui solo riga di comando!!hai un esempio in mente??
Avatar utente
simo_magic
Rampante Reduce
Rampante Reduce
Messaggi: 9496
Iscrizione: lunedì 18 dicembre 2006, 21:37
Località: Piemonte

Re: [java] aiuto nel lanciare le eccezioni

Messaggio 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
Avatar utente
Massimo S.
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1931
Iscrizione: giovedì 28 settembre 2006, 14:34

Re: [java] aiuto nel lanciare le eccezioni

Messaggio 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
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti