- Undantagshantering
- Fördel med undantagshantering
- Hierarki av undantagsklasser
- Typer av undantag
- Exempel på undantag
- Scenarier där ett undantag kan inträffa
De Undantagshantering i Java är en av de mäktiga mekanism för att hantera körtidsfel så att applikationens normala flöde kan bibehållas.
I den här handledningen kommer vi att lära oss om Java-undantag, dess typer och skillnaden mellan markerade och omarkerade undantag.
mata in sträng i java
Vad är undantag i Java?
Ordbok Betydelse: Undantaget är ett onormalt tillstånd.
I Java är ett undantag en händelse som stör programmets normala flöde. Det är ett föremål som kastas under körning.
Vad är undantagshantering?
Exception Handling är en mekanism för att hantera runtime-fel som ClassNotFoundException, IOException, SQLException, RemoteException, etc.
Fördel med undantagshantering
Kärnfördelen med undantagshantering är för att bibehålla applikationens normala flöde . Ett undantag stör normalt det normala flödet av applikationen; det är därför vi måste hantera undantag. Låt oss överväga ett scenario:
statement 1; statement 2; statement 3; statement 4; statement 5;//exception occurs statement 6; statement 7; statement 8; statement 9; statement 10;
Anta att det finns 10 satser i ett Java-program och ett undantag inträffar vid sats 5; resten av koden kommer inte att exekveras, dvs satserna 6 till 10 kommer inte att exekveras. Men när vi utför undantagshantering kommer resten av satserna att köras. Det är därför vi använder undantagshantering i Java .
Vet du?
|
Hierarki av Java Exception-klasser
Klassen java.lang.Throwable är rotklassen för Java Exception-hierarkin som ärvs av två underklasser: Exception och Error. Hierarkin för Java Exception-klasser ges nedan:
Typer av Java-undantag
Det finns huvudsakligen två typer av undantag: markerade och omarkerade. Ett fel betraktas som det omarkerade undantaget. Men enligt Oracle finns det tre typer av undantag, nämligen:
- Markerat undantag
- Omarkerat undantag
- Fel
Skillnad mellan markerade och omarkerade undantag
1) Markerat undantag
Klasserna som direkt ärver Throwable-klassen utom RuntimeException och Error är kända som kontrollerade undantag. Till exempel, IOException, SQLException, etc. Markerade undantag kontrolleras vid kompilering.
2) Omarkerat undantag
Klasserna som ärver RuntimeException är kända som omarkerade undantag. Till exempel ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException, etc. Omarkerade undantag kontrolleras inte vid kompilering, men de kontrolleras under körning.
3) Fel
Felet går inte att återställa. Några exempel på fel är OutOfMemoryError, VirtualMachineError, AssertionError etc.
Nyckelord för Java-undantag
Java tillhandahåller fem nyckelord som används för att hantera undantaget. Följande tabell beskriver var och en.
Nyckelord | Beskrivning |
---|---|
Prova | Nyckelordet 'försök' används för att specificera ett block där vi ska placera en undantagskod. Det betyder att vi inte kan använda testblock enbart. Försöksblocket måste följas av antingen catch eller final. |
fånga | 'Fångst'-blocket används för att hantera undantaget. Det måste föregås av ett försöksblock, vilket betyder att vi inte kan använda enbart fångstblock. Det kan följas av att slutligen blockera senare. |
till sist | Blocket 'slutligen' används för att exekvera den nödvändiga koden för programmet. Den exekveras oavsett om ett undantag hanteras eller inte. |
kasta | Nyckelordet 'kasta' används för att skapa ett undantag. |
kastar | Nyckelordet 'kastar' används för att deklarera undantag. Den specificerar att det kan förekomma ett undantag i metoden. Det ger inget undantag. Den används alltid med metodsignatur. |
Exempel på Java-undantagshantering
Låt oss se ett exempel på Java Exception Handling där vi använder en try-catch-sats för att hantera undantaget.
JavaExceptionExample.java
public class JavaExceptionExample{ public static void main(String args[]){ try{ //code that may raise exception int data=100/0; }catch(ArithmeticException e){System.out.println(e);} //rest code of the program System.out.println('rest of the code...'); } }Testa det nu
Produktion:
Exception in thread main java.lang.ArithmeticException:/ by zero rest of the code...
I exemplet ovan höjer 100/0 ett ArithmeticException som hanteras av ett try-catch-block.
Vanliga scenarier för Java-undantag
Det finns vissa scenarier där okontrollerade undantag kan förekomma. De är följande:
1) Ett scenario där ArithmeticException inträffar
Om vi dividerar ett tal med noll, uppstår ett aritmetiskt undantag.
int a=50/0;//ArithmeticException
2) Ett scenario där NullPointerException inträffar
Om vi har ett nollvärde i någon variabel , att utföra valfri operation på variabeln ger en NullPointerException.
String s=null; System.out.println(s.length());//NullPointerException
3) Ett scenario där NumberFormatException inträffar
Om formateringen av en variabel eller ett tal inte matchar, kan det leda till NumberFormatException. Anta att vi har en sträng variabel som har tecken; omvandling av denna variabel till siffra kommer att orsaka NumberFormatException.
String s='abc'; int i=Integer.parseInt(s);//NumberFormatException
4) Ett scenario där ArrayIndexOutOfBoundsException inträffar
När en array överskrider sin storlek uppstår ArrayIndexOutOfBoundsException. det kan finnas andra orsaker till ArrayIndexOutOfBoundsException. Tänk på följande påståenden.
int a[]=new int[5]; a[10]=50; //ArrayIndexOutOfBoundsException
Java Exceptions Index
- Java Try-Catch Block
- Java Multiple Catch Block
- Java Nested Prova
- Java Blockera äntligen
- Java Throw nyckelord
- Java Exception Propagation
- Java kastar nyckelord
- Java Throw vs Throws
- Java Final vs Finally vs Finalize
- Java-undantagshantering med metodöverstyrning
- Java anpassade undantag