I Java undantag är en oönskad eller oväntad händelse, som inträffar under körningen av programmet. När ett undantag inträffar avslutas exekveringen av programmet. För att undvika dessa uppsägningsvillkor kan vi använda prova catch block i Java. I den här artikeln kommer vi att lära oss om Prova, fånga, kasta och kasta i Java.
Varför uppstår ett undantag?
Ett undantag kan uppstå på grund av flera orsaker som ett nätverksanslutningsproblem, dålig input från en användare, att öppna en icke-existerande fil i ditt program, etc.
Block och nyckelord som används för undantagshantering
1. prova i Java
De Prova blocket innehåller en uppsättning satser där ett undantag kan inträffa.
try { // statement(s) that might cause exception }> 2. fånga i Java
Fångstblocket används för att hantera det osäkra tillståndet för ett försöksblock. Ett försöksblock följs alltid av ett fångstblock, som hanterar undantaget som inträffar i det associerade försöksblocket.
catch { // statement(s) that handle an exception // examples, closing a connection, closing // file, exiting the process after writing // details to a log file. }> 3. kasta in Java
Nyckelordet throw används för att överföra kontroll från försöksblocket till fångstblocket.
Nedan är implementeringen av ovanstående tillvägagångssätt:
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);> >}> >}> }> |
terminal kali linux
>
>Produktion
ansluta databas java
Caught inside help(). Caught in main error name given below: java.lang.NullPointerException: error_unknown>
4. kastar in Java
De kastar nyckelordet används för undantagshantering utan försök och fånga block. Den specificerar de undantag som en metod kan skicka till den som ringer och inte hanterar sig själv.
Nedan är implementeringen av ovanstående tillvägagångssätt:
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.');> >}> >}> }> |
>
>Produktion
Inside fun(). caught in main.>
5. äntligen i Java
Det utförs efter fångstblocket. Vi använder den för att lägga in en vanlig kod (som ska exekveras oavsett om ett undantag har inträffat eller inte) när det finns flera fångstblock.
Ett exempel på ett undantag som genereras av systemet ges nedan:
vårens moln
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>
Nedan är implementeringen av ovanstående tillvägagångssätt:
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');> >}> >}> }> |
>
>Produktion
Exception caught:Division by zero I am in final block>
Vanliga frågor för Test Block i Java
1. När ska du använda try catch blocks?
Try catch-block används för att undvika undantag så att koden inte går sönder innan den fullständiga körningen.
2. Vad är kast och kast i Java?
Kasten används för att överföra kontroll från försöksblocket till fångstblocket. Medan kast används för undantagshantering utan försök och fånga block. Throws anger de undantag som en metod kan kasta till den som ringer och inte hanterar sig själv.
3. Kan vi ha två fångstblock?
Ja, vi kan ha flera catch-block med try-satser.