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);> >}> >}> }> |
streng sammenlignet med java
>
>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
grunnleggende selen
// 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
jquery forelder
// 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.