? Undtagelser kan forårsage Java-programmer til at gå ned , men når de anvendes korrekt , de giver også mulighed for programmører at lave applikationer, der kan klare uventede begivenheder . Antal undtagelser opstår ofte , når programmer forsøger at parse numre , konvertere tekststrenge til numeriske værdier. Hvis Java-program bruger en metode , hvor en række ikke er af den forventede type, kan den kaste en Talformat Undtagelse . Ved at forstå undtagelser , kan du lære , hvordan du opretter programmer, der giver pålidelig funktionalitet. Undtagelse Typer
Java -programmer kan kaste mange forskellige typer af undtagelse. The Number Format Exception er den mest almindelige numeriske undtagelse. En runtime undtagelse , den udvider Ulovlig Argument Exception klasse. Normalt er denne undtagelse opstår, når man bruger en metode til at forsøge at parse en streng som et tal , men indholdet af strengen er ikke en række af den korrekte type . Fordi det er en ukontrolleret undtagelse , kan dine programmer kompilere uden din Integrated Development Environment advarer dig om mulige fejl. The Number Format Exception kun opstår, hvis et program går uhensigtsmæssig input til en metode , så kan du kun opdage det , når din ansøgning kører .
Årsager
Java-sproget wrapper klasser giver objekt repræsentationer af de primitive antal typer, herunder heltal, float og double . Ved hjælp af disse klasser, kan programmer parse strengværdier som numeriske typer , som følger : Hej
Integer.parseInt ( "3 ");
Denne kode henretter uden fejl , fordi passerede string parameter indeholder en talværdi. Men den følgende metode opkald får Java til at kaste et talformat Undtagelse fordi strengen ikke indeholder et nummer : Hej
Integer.parseInt ( "r ");
Følgende kode medfører også undtagelsen, fordi selv om strengen er et tal , er det ikke et heltal : Hej
Integer.parseInt ( " 3.5" ),
Alle disse kode uddrag kompilere og køre , så programmøren kun blevet opmærksom på fejlen på runtime . Værdierne normalt ikke udtrykkeligt leveres , men læses fra en ekstern kilde eller variabel værdi.
Catching
p Du kan fange talformat Undtagelser , hvis dine programmer er tilbøjelige til at kaste dem. Ved at tilføje dit nummer parsing kode til en try-blok , og derefter leverer en fangst sort efter det , kan du oprette programmer, der vil fortsætte med at fungere, selv om et talformat Undtagelse opstår. Følgende kodeeksempel viser denne struktur : Hej
try { Integer.parseInt ( numString );} catch ( NumberFormatException numExc ) { System.out.println ( numExc.getMessage ()); }
den parse strengen i dette tilfælde er repræsenteret som en variabel reference, så dens indhold er ukendt. Hvis strengen indholdet ikke kan tolkes som et heltal , koden umiddelbart springer til catch-blok , hvor du kan give alternative behandling .
Kaste
Samt fange undtagelser kan udviklere oprette Java-programmer , som de kaster brugerdefinerede undtagelser. Dette er en fælles taktik med ukontrolleret undtagelser som talformat. Følgende ændrede kode demonstrerer : Hej
catch ( NumberFormatException numExc ) { kaste nyt BadNumberException ( );}
Dette gør det muligt for programmører at definere deres egne brugerdefinerede undtagelse klasse, som kan være en kontrolleret type og at tilvejebringe en passende coping -strategi for anvendelsen .