logo

Java try-catch blok

Java pokušaj blok

Java probati blok se koristi za uključivanje koda koji bi mogao izazvati iznimku. Mora se koristiti unutar metode.

Ako se pojavi iznimka u određenoj naredbi u bloku try, ostatak blok koda se neće izvršiti. Stoga se preporuča ne držati kod u bloku pokušaja koji neće izbaciti iznimku.

Nakon bloka Java try mora slijediti blok catch ili finally.

Sintaksa Java try-catch

 try{ //code that may throw an exception }catch(Exception_class_Name ref){} 

Sintaksa bloka try-finally

 try{ //code that may throw an exception }finally{} 

Java catch blok

Java catch blok se koristi za rukovanje iznimkama deklariranjem vrste iznimke unutar parametra. Deklarirana iznimka mora biti iznimka nadređene klase (tj. Iznimka) ili generirana vrsta iznimke. Međutim, dobar pristup je deklarirati generiranu vrstu iznimke.

kako provjeriti veličinu zaslona monitora

Blok catch mora se koristiti samo nakon bloka try. Možete koristiti više blokova catch s jednim blokom pokušaja.

Interni rad Java try-catch bloka

Java try-catch blok

JVM prvo provjerava je li iznimka obrađena ili ne. Ako se iznimka ne obrađuje, JVM pruža zadani rukovatelj iznimkama koji obavlja sljedeće zadatke:

  • Ispisuje opis iznimke.
  • Ispisuje praćenje stoga (hijerarhija metoda u kojima je došlo do iznimke).
  • Uzrokuje prekid programa.

Ali ako aplikacijski programer obradi iznimku, normalni tok aplikacije se održava, tj. izvršava se ostatak koda.

Problem bez rukovanja iznimkama

Pokušajmo razumjeti problem ako ne koristimo try-catch blok.

Primjer 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'); } } 
Testirajte sada

Izlaz:

 Exception in thread 'main' java.lang.ArithmeticException: / by zero 

Kao što je prikazano u gornjem primjeru, ostatak koda se ne izvršava (u tom slučaju, ostatak koda izjava se ne ispisuje).

Nakon iznimke može biti 100 redaka koda. Ako se iznimka ne obradi, sav kod ispod iznimke neće se izvršiti.

Rješenje rukovanjem iznimkama

Pogledajmo rješenje gornjeg problema uz pomoć Java try-catch bloka.

Primjer 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'); } } 
Testirajte sada

Izlaz:

 java.lang.ArithmeticException: / by zero rest of the code 

Kao što je prikazano u gornjem primjeru, ostatak koda se izvršava, tj ostatak koda ispisuje se izjava.

Primjer 3

U ovom smo primjeru također zadržali kod u bloku try koji neće izbaciti iznimku.

line autocad naredba

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); } } } 
Testirajte sada

Izlaz:

 java.lang.ArithmeticException: / by zero 

Ovdje možemo vidjeti da ako se dogodi iznimka u bloku try, ostatak blok koda se neće izvršiti.

Primjer 4

Ovdje rješavamo iznimku pomoću iznimke nadređene klase.

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'); } } 
Testirajte sada

Izlaz:

 java.lang.ArithmeticException: / by zero rest of the code 

Primjer 5

Pogledajmo primjer ispisa prilagođene poruke o iznimci.

TryCatchExample5.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'); } } } 
Testirajte sada

Izlaz:

 Can't divided by zero 

Primjer 6

Pogledajmo primjer za rješavanje iznimke u catch bloku.

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)); } } } 
Testirajte sada

Izlaz:

 25 

Primjer 7

U ovom primjeru, zajedno s blokom try, također prilažemo kod iznimke u blok catch.

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'); } } 
Testirajte sada

Izlaz:

 Exception in thread 'main' java.lang.ArithmeticException: / by zero 

Ovdje možemo vidjeti da catch blok nije sadržavao kod iznimke. Dakle, priložite kod iznimke unutar try bloka i koristite catch blok samo za obradu iznimaka.

preorder obilazak stabla

Primjer 8

U ovom primjeru rukujemo generiranom iznimkom (Aritmetička iznimka) s drugom vrstom klase iznimke (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'); } } 
Testirajte sada

Izlaz:

 Exception in thread 'main' java.lang.ArithmeticException: / by zero 

Primjer 9

Pogledajmo primjer za rukovanje drugom neprovjerenom iznimkom.

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'); } } 
Testirajte sada

Izlaz:

 java.lang.ArrayIndexOutOfBoundsException: 10 rest of the code 

Primjer 10

Pogledajmo primjer za obradu provjerene iznimke.

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'); } } 
Testirajte sada

Izlaz:

 File saved successfully