Java Prøv Catch Block

I Java unntak er en uønsket eller uventet hendelse, som oppstår under kjøringen av programmet. Når et unntak oppstår, avsluttes kjøringen av programmet. For å unngå disse oppsigelsesbetingelsene kan vi bruke prøve catch block i Java. I denne artikkelen vil vi lære om Prøv, fang, kast og kast i Java.

Hvorfor oppstår et unntak?

Et unntak kan oppstå på grunn av flere årsaker som et nettverkstilkoblingsproblem, dårlig inndata gitt av en bruker, åpning av en ikke-eksisterende fil i programmet, etc.

Blokker og nøkkelord som brukes til unntakshåndtering

1. prøv i Java

De prøve blokk inneholder et sett med setninger der et unntak kan forekomme.

try {  // statement(s) that might cause exception } 

2. fangst i Java

Fangstblokken brukes til å håndtere den usikre tilstanden til en prøveblokk. En try-blokk følges alltid av en catch-blokk, som håndterer unntaket som oppstår i den tilhørende try-blokken.

catch {  // statement(s) that handle an exception  // examples, closing a connection, closing  // file, exiting the process after writing  // details to a log file. } 

3. kaste inn Java

Kast-nøkkelordet brukes til å overføre kontroll fra try-blokken til catch-blokken.

Nedenfor er implementeringen av tilnærmingen ovenfor:

Java




// Java program that demonstrates the use of throw> class> ThrowExcep {> > static> void> help()> > {> > try> {> > throw> new> NullPointerException(> 'error_unknown'> );> > }> > catch> (NullPointerException e) {> > System.out.println(> 'Caught inside help().'> );> > // rethrowing the exception> > throw> e;> > }> > }> > public> static> void> main(String args[])> > {> > try> {> > help();> > }> > catch> (NullPointerException e) {> > System.out.println(> > 'Caught in main error name given below:'> );> > System.out.println(e);> > }> > }> }>

Produksjon

Caught inside help(). Caught in main error name given below: java.lang.NullPointerException: error_unknown 

4. kaster inn Java

De kaster nøkkelord brukes for unntakshåndtering uten prøv og fang-blokk. Den spesifiserer unntakene som en metode kan sende til den som ringer og ikke håndterer seg selv.

Nedenfor er implementeringen av tilnærmingen ovenfor:

Java




// Java program to demonstrate working of throws> class> ThrowsExecp {> > // This method throws an exception> > // to be handled> > // by caller or caller> > // of caller and so on.> > static> void> fun()> throws> IllegalAccessException> > {> > System.out.println('Inside fun(). ');> > throw> new> IllegalAccessException('demo');> > }> > // This is a caller function> > public> static> void> main(String args[])> > {> > try> {> > fun();> > }> > catch> (IllegalAccessException e) {> > System.out.println('caught in main.');> > }> > }> }>

Produksjon

Inside fun(). caught in main. 

5. endelig i Java

Den utføres etter fangblokken. Vi bruker den til å sette en felles kode (som skal utføres uavhengig av om et unntak har skjedd eller ikke) når det er flere catch-blokker.

Et eksempel på et unntak generert av systemet er gitt nedenfor:

Exception in thread 'main'    java.lang.ArithmeticException  : divide  by zero at   ExceptionDemo.main(ExceptionDemo.java:5)  ExceptionDemo: The class name main:The method name  ExceptionDemo.java:The file name java:5:line number 

Nedenfor er implementeringen av tilnærmingen ovenfor:

Java




// Java program to demonstrate working of try,> // catch and finally> class> Division {> > public> static> void> main(String[] args)> > {> > int> a => 10> , b => 5> , c => 5> , result;> > try> {> > result = a / (b - c);> > System.out.println('result' + result);> > }> > catch> (ArithmeticException e) {> > System.out.println('Exception caught:Division by zero');> > }> > finally> {> > System.out.println('I am in> final> block');> > }> > }> }>

Produksjon

Exception caught:Division by zero I am in final block 

Vanlige spørsmål for Prøv Block i Java

1. Når bør du bruke try catch-blokker?

Prøv-fangstblokker brukes for å unngå unntak, slik at koden ikke brytes før den fulle kjøringen.

2. Hva er kast og kast i Java?

Kasten brukes til å overføre kontroll fra prøveblokken til fangstblokken. Mens kast brukes til unntakshåndtering uten try & catch-blokk. Kaster spesifiserer unntakene som en metode kan kaste til den som ringer og ikke håndterer seg selv.

3. Kan vi ha to fangblokker?

Ja, vi kan ha flere catch-blokker med try-setninger.