Java test block
Java Prova block används för att omsluta koden som kan orsaka ett undantag. Det måste användas inom metoden.
Om ett undantag inträffar vid den specifika satsen i try-blocket, kommer resten av blockkoden inte att köras. Så det rekommenderas att inte behålla koden i försöksblocket som inte ger ett undantag.
Java try block måste följas av antingen catch eller finally block.
Syntax för Java try-catch
try{ //code that may throw an exception }catch(Exception_class_Name ref){}
Syntax för försök-slutligen block
try{ //code that may throw an exception }finally{}
Java-fångstblock
Java catch block används för att hantera undantaget genom att deklarera typen av undantag inom parametern. Det deklarerade undantaget måste vara det överordnade klassenundantaget (d.v.s. Undantag) eller den genererade undantagstypen. Det goda tillvägagångssättet är dock att deklarera den genererade typen av undantag.
terminal kali linux
Fångstblocket måste endast användas efter försöksblocket. Du kan använda flera fångstblock med ett enda försöksblock.
Internt arbete av Java try-catch block
JVM kontrollerar först om undantaget hanteras eller inte. Om undantaget inte hanteras tillhandahåller JVM en standardundantagshanterare som utför följande uppgifter:
- Skriver ut undantagsbeskrivning.
- Skriver ut stackspåret (hierarki av metoder där undantaget inträffade).
- Gör att programmet avslutas.
Men om applikationsprogrammeraren hanterar undantaget bibehålls det normala flödet för applikationen, dvs resten av koden exekveras.
Problem utan undantagshantering
Låt oss försöka förstå problemet om vi inte använder ett try-catch-block.
Exempel 1
TryCatchExample1.java
public class TryCatchExample1 { public static void main(String[] args) { int data=50/0; //may throw exception System.out.println('rest of the code'); } }Testa det nu
Produktion:
Exception in thread 'main' java.lang.ArithmeticException: / by zero
Som visas i exemplet ovan är resten av koden inte utförs (i sådant fall resten av koden uttalandet skrivs inte ut).
Det kan finnas 100 rader kod efter undantaget. Om undantaget inte hanteras kommer inte all kod under undantaget att exekveras.
Lösning genom undantagshantering
Låt oss se lösningen på ovanstående problem genom ett java try-catch-block.
Exempel 2
TryCatchExample2.java
public class TryCatchExample2 { public static void main(String[] args) { try { int data=50/0; //may throw exception } //handling the exception catch(ArithmeticException e) { System.out.println(e); } System.out.println('rest of the code'); } }Testa det nu
Produktion:
java.lang.ArithmeticException: / by zero rest of the code
Som visas i exemplet ovan är resten av koden exekveras, dvs resten av koden uttalande skrivs ut.
Exempel 3
I det här exemplet höll vi också koden i ett försöksblock som inte ger ett undantag.
TryCatchExample3.java
public class TryCatchExample3 { public static void main(String[] args) { try { int data=50/0; //may throw exception // if exception occurs, the remaining statement will not exceute System.out.println('rest of the code'); } // handling the exception catch(ArithmeticException e) { System.out.println(e); } } }Testa det nu
Produktion:
java.lang.ArithmeticException: / by zero
Här kan vi se att om ett undantag inträffar i försöksblocket, kommer resten av blockkoden inte att köras.
Exempel 4
Här hanterar vi undantaget med hjälp av det överordnade klassenundantaget.
TryCatchExample4.java
public class TryCatchExample4 { public static void main(String[] args) { try { int data=50/0; //may throw exception } // handling the exception by using Exception class catch(Exception e) { System.out.println(e); } System.out.println('rest of the code'); } }Testa det nu
Produktion:
java.lang.ArithmeticException: / by zero rest of the code
Exempel 5
Låt oss se ett exempel för att skriva ut ett anpassat meddelande vid undantag.
TryCatchExample5.java
ansluta databas java
public class TryCatchExample5 { public static void main(String[] args) { try { int data=50/0; //may throw exception } // handling the exception catch(Exception e) { // displaying the custom message System.out.println('Can't divided by zero'); } } }Testa det nu
Produktion:
Can't divided by zero
Exempel 6
Låt oss se ett exempel för att lösa undantaget i ett fångstblock.
TryCatchExample6.java
public class TryCatchExample6 { public static void main(String[] args) { int i=50; int j=0; int data; try { data=i/j; //may throw exception } // handling the exception catch(Exception e) { // resolving the exception in catch block System.out.println(i/(j+2)); } } }Testa det nu
Produktion:
25
Exempel 7
I det här exemplet, tillsammans med försöksblocket, omsluter vi även undantagskod i ett fångstblock.
vårens moln
TryCatchExample7.java
public class TryCatchExample7 { public static void main(String[] args) { try { int data1=50/0; //may throw exception } // handling the exception catch(Exception e) { // generating the exception in catch block int data2=50/0; //may throw exception } System.out.println('rest of the code'); } }Testa det nu
Produktion:
Exception in thread 'main' java.lang.ArithmeticException: / by zero
Här kan vi se att fångstblocket inte innehöll undantagskoden. Så, bifoga undantagskod i ett försöksblock och använd endast catch-block för att hantera undantagen.
Exempel 8
I det här exemplet hanterar vi det genererade undantaget (Arithmetic Exception) med en annan typ av undantagsklass (ArrayIndexOutOfBoundsException).
TryCatchExample8.java
public class TryCatchExample8 { public static void main(String[] args) { try { int data=50/0; //may throw exception } // try to handle the ArithmeticException using ArrayIndexOutOfBoundsException catch(ArrayIndexOutOfBoundsException e) { System.out.println(e); } System.out.println('rest of the code'); } }Testa det nu
Produktion:
Exception in thread 'main' java.lang.ArithmeticException: / by zero
Exempel 9
Låt oss se ett exempel för att hantera ett annat okontrollerat undantag.
TryCatchExample9.java
public class TryCatchExample9 { public static void main(String[] args) { try { int arr[]= {1,3,5,7}; System.out.println(arr[10]); //may throw exception } // handling the array exception catch(ArrayIndexOutOfBoundsException e) { System.out.println(e); } System.out.println('rest of the code'); } }Testa det nu
Produktion:
java.lang.ArrayIndexOutOfBoundsException: 10 rest of the code
Exempel 10
Låt oss se ett exempel för att hantera markerade undantag.
TryCatchExample10.java
import java.io.FileNotFoundException; import java.io.PrintWriter; public class TryCatchExample10 { public static void main(String[] args) { PrintWriter pw; try { pw = new PrintWriter('jtp.txt'); //may throw exception pw.println('saved'); } // providing the checked exception handler catch (FileNotFoundException e) { System.out.println(e); } System.out.println('File saved successfully'); } }Testa det nu
Produktion:
File saved successfully