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
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