I den här handledningen lär vi oss om undantag i Java. Vi kommer att täcka fel, undantag och olika typer av undantag i Java.
Ett undantag är en oväntad händelse som inträffar under programkörningen. Det påverkar flödet av programinstruktionerna som kan få programmet att avslutas onormalt.
Ett undantag kan förekomma av många anledningar. Några av dem är:
- Ogiltig användarinmatning
- Enhetsfel
- Förlust av nätverksanslutning
- Fysiska begränsningar (slut på hårddiskminne)
- Kodfel
- Öppna en otillgänglig fil
Java-undantagshierarki
Här är ett förenklat diagram över undantagshierarkin i Java.
Som du kan se från bilden ovan är Throwable
klassen rotklassen i hierarkin.
Observera att hierarkin delas in i två grenar: Fel och undantag.
Fel
Fel representerar oåterkalleliga förhållanden som Java Virtual Machine (JVM) som tar slut på minne, minnesläckage, stacköverflödsfel, bibliotekskompatibilitet, oändlig rekursion etc.
Fel är vanligtvis utanför programmerarens kontroll och vi bör inte försöka hantera fel.
Undantag
Undantag kan fångas och hanteras av programmet.
När ett undantag förekommer inom en metod skapar det ett objekt. Detta objekt kallas undantagsobjektet.
Den innehåller information om undantaget, såsom namn och beskrivning av undantaget och tillstånd för programmet när undantaget inträffade.
Vi lär oss hur man hanterar dessa undantag i nästa handledning. I denna handledning kommer vi nu att fokusera på olika typer av undantag i Java.
Java-undantagstyper
Undantagshierarkin har också två grenar: RuntimeException
och IOException
.
1. RuntimeException
Ett undantag för runtime inträffar på grund av ett programmeringsfel. De är också kända som okontrollerade undantag .
Dessa undantag kontrolleras inte vid sammanställningstid men körtid. Några av de vanligaste undantagen för körning är:
- Felaktig användning av ett API -
IllegalArgumentException
- Ingen pekareåtkomst (saknar initialisering av en variabel) -
NullPointerException
- Tillgång till array utanför gränserna -
ArrayIndexOutOfBoundsException
- Dela ett tal med 0 -
ArithmeticException
Du kan tänka på det på det här sättet. ”Om det är ett runtime-undantag är det ditt fel”.
Det NullPointerException
skulle inte ha inträffat om du hade kontrollerat om variabeln initialiserades eller inte innan du använde den.
En ArrayIndexOutOfBoundsException
skulle inte ha inträffat om du testade arrayindex mot arraygränserna.
2. IOException
En IOException
är också känd som ett kontrollerat undantag . De kontrolleras av kompilatorn vid kompileringstiden och programmeraren uppmanas att hantera dessa undantag.
Några av exemplen på kontrollerade undantag är:
- Att försöka öppna en fil som inte finns resulterar i
FileNotFoundException
- Försöker läsa efter slutet av en fil
Nu vet vi om undantag, vi lär oss om hantering av undantag i nästa handledning.