Hvorfor er det dårlig tall Unntak i Java?

Hvorfor er det dårlig tall Unntak i Java?


Unntak kan føre til Java-programmer til å krasje, men når de brukes riktig, de også tillate programmerere til å lage programmer som kan takle uforutsette hendelser. Antall unntak oppstår ofte når programmer prøver å analysere tall, konvertering tekststrenger inn tallverdier. Hvis et Java-program bruker en metode der et tall er ikke av den forventede typen, kan det kaste en tallformat unntak. Ved å forstå unntak, kan du lære å lage programmer som gir pålitelig funksjonalitet.

unntaks~~POS=TRUNC Typer

Java-programmer kan kaste mange forskjellige typer unntak. The Number Format Unntaket er den vanligste numerisk unntak. En kjøretids unntak, utvider den ulovlig Argument Exception klasse. Normalt er dette unntaket oppstår når du bruker en metode for å forsøke å analysere en streng som et tall, men innholdet i strengen er ikke en rekke av riktig type. Fordi det er en ukontrollert unntak, kan programmene kompilere uten din Integrated Development Environment advarer deg om mulige feil. The Number Format Unntak oppstår bare hvis et program passerer upassende innspill til en metode, slik at du kan bare oppdage det når søknaden går.

årsaker

Java-språket wrapper klasser gir objekt representasjoner av primitive nummertyper, inkludert heltall, float og double. Ved hjelp av disse klassene, kan programmer analysere strengverdier som numeriske typer, som følger:

Integer.parseInt ( "3");

Denne koden utfører uten feil, fordi den passerte strengparameter inneholder en tallverdi. Imidlertid fører følgende metode kall Java for å kaste et tallformat Unntak fordi strengen ikke inneholder et tall:

Integer.parseInt ( "r");

Den følgende koden fører også unntak, fordi selv om strengen er et tall, er det ikke et heltall:

Integer.parseInt ( "3,5");

Alle disse kode utdrag kompilere og kjøre, så programmerer kan bare bli klar over feilen under kjøring. Verdiene er vanligvis ikke gitt eksplisitt, men leses fra en ekstern kilde eller variabel verdi.

Catching

Du kan ta tallformat Unntak hvis programmene er sannsynlig å kaste dem. Ved å legge inn nummeret parsing koden til en prøve blokk, deretter levere en fangst svart etter det, kan du lage programmer som vil fortsette å fungere selv om en tallformat Unntak oppstår. Følgende eksempelkode demonstrerer denne strukturen:

try {
Integer.parseInt (numString);
}
fangst (NumberFormatException numExc) {System.out.println (numExc.getMessage ()); }

Den parse strengen i dette tilfellet representeres som en variabel referanse, slik at dets innhold er ukjent. Hvis strengen innholdet ikke kan analyseres som et heltall, koden hopper umiddelbart til catch-blokken, hvor du kan gi alternativ behandling.

kaster

I tillegg til å fange unntak, kan utviklere lage Java-programmer der de kaster tilpassede unntak. Dette er en vanlig taktikk med ukontrollert unntak som tallformat. Følgende endringer kode demonstrerer:

fangst (NumberFormatException numExc) {kaster nytt BadNumberException (); }

Dette lar programmerere å definere sine egne tilpassede unntak klasse, noe som kan være en kontrollert type, og for å gi en passende mestringsstrategi for programmet.