Try/catch problem Java

Tags:    java optionpane

Hej alle

Jeg er ny her på Udvikleren, og ny indenfor Java. Jeg sidder pt. og er i gang med at lifle et lille program sammen, hvor jeg bl.a. har et textfield som der kun kan indtastes tal i. Derfor har jeg tænkt mig at sætte en lille try/catch op, men jeg kan simpelthen ikke få det til at virke. Her er kodestykket:
Fold kodeboks ind/udJava kode 


Først og fremmest virker catch-funktionen ikke. Programmet kører fint igennem, men fejler altså når jeg indtaster tekst i mit tekstfield. Netbeans giver mig fejlen "Identifier expected" på den linje hvor catch-funktionen starter.

For det andet vil jeg heller ikke tro mit optionpane virker, da Netbeans også melder en fejl omkring den: "cannot find symbol"

Jeg håber at en eller anden kan være behjælpelig med at løse problemet. På forhånd tak :)




2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
Du har lavet 2 små smuttere. Den linje som som er usikker og kan smide en exception er:
Fold kodeboks ind/udJava kode 

Det er parseInt som vil smide en exception hvis den ikke kan omdanne teksten til tal: http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Integer.html#parseInt%28java.lang.String%29

Derfor skal den være ind i din try statement.

Den anden fejl får du fordi du ikke har lavet en identifier til din Exception. Når du fanger en exception får du en faktisk exception instans, derfor skal den deklares ligesom andre variabler:
Fold kodeboks ind/udJava kode 


Din catch skal komme lige efter din try-blok. Følgende er en måde hvor alt koden der med tallet at gøre er samlet i try-blokken.
Fold kodeboks ind/udJava kode 


Her er en anden måde hvor du kun har tal-indlæsningen i din try, men så skal catch blokken flyttes op:

Fold kodeboks ind/udJava kode 


Det god praksis kun at fange lige præcis den exception man forventer der kan opstå og ved hvordan skal håndteres. Derfor kunne du i stedet for:
Fold kodeboks ind/udJava kode 

Bruge
Fold kodeboks ind/udJava kode 





Arhh! Mange tak for hjælpen Søren! Jeg havde egentlig oprindeligt lagt ud med at bruge NumberFormatException, men selvfølgelig ikke været klar over at definere den.

Jeg fandt selv ud af hvorfor mit OptionPane ikke virkede. Så nu virker alt som det skal. Mange tak for hjælpen endnu en gang ;)



t