? Undantag kan orsaka Java-program att krascha , men när den används på rätt sätt , de också tillåter programmerare att skapa applikationer som kan hantera oväntade händelser . Antal undantag inträffar ofta när program försöker tolka siffror , konvertera textsträngar till numeriska värden . Om ett Java-program använder en metod i vilken ett antal är inte av den förväntade typen, kan den kasta a Undantag numeriskt format . Genom att förstå undantag , kan du lära dig att skapa program som ger pålitlig funktion . Undantagstyper
Java -program kan kasta många olika typer av undantag . The Number Format Undantag är den vanligaste numeriska undantag . En runtime undantag , sträcker den Illegal klassen Argument undantag. Normalt undantag uppstår när du använder en metod för att försöka tolka en sträng som ett nummer , men innehållet i strängen är inte ett nummer av rätt typ . Eftersom det är en okontrollerad undantag , får dina program kompilera utan din Integrated Development Environment varnar dig om eventuella fel . The Number Format Undantag sker endast om ett program passerar olämpligt ingång till en metod , så att du bara kan upptäcka det när programmet körs .
Orsaker
Java wrapper klasser ger träffar representationer av de primitiva antal slag, inklusive heltal , flyttal och dubbel . Med hjälp av dessa klasser , kan program tolka strängvärden som numeriska typer , enligt följande :
Integer.parseInt ( " 3 " ) ;
Denna kod körs utan fel , eftersom den passerade strängen parametern innehåller ett numeriskt värde . Emellertid orsakar följande metodanrop Java att kasta ett Exception Number Format eftersom strängen inte innehåller ett antal :
Integer.parseInt ( " R " ) ;
Följande kod orsakar också undantag , eftersom även om strängen är ett nummer , är det inte ett heltal :
Integer.parseInt ( " 3.5 " ) ;
Alla dessa kod utdrag kompilera och köra , så programmeraren kan bara bli medvetna om felet vid körning . Värdena är inte normalt levereras explicit , men läses från en extern källa eller variabelt värde .
Catching
Du kan fånga Undantag Nummer Format om dina program kommer sannolikt att kasta dem . Genom att lägga till ditt kodnummer parsning till en try-block , sedan levererar en hake svart efter det , kan du skapa program som kommer att fortsätta att fungera även om ett talformat Undantag uppstår . Följande exempelkod visar denna struktur :
try { Integer.parseInt ( numString ) ;} catch ( NumberFormatException numExc ) { System.out.println ( numExc.getMessage ( ) ) ; }
Den parse strängen i detta fall representeras av en variabel referens , så dess innehåll är okänd. Om strängen innehållet inte kan tolkas som ett heltal , hoppar koden omedelbart till catch-blocket , där du kan ge alternativ behandling .
Kasta
Samt fånga undantag , kan utvecklare skapa Java- program där de kastar anpassade undantag . Detta är en vanlig taktik med okontrollerade undantag som Number Format . Följande ändrade kod visar :
catch ( NumberFormatException numExc ) { kasta nytt BadNumberException ( ) ;}
Detta gör att programmerare att definiera sina egna undantag klass , vilket kan vara en rutig typ , och att tillhandahålla en lämplig coping strategi för ansökan .