V Jave výnimkou je nechcená alebo neočakávaná udalosť, ktorá nastane počas vykonávania programu. Keď sa vyskytne výnimka, vykonávanie programu sa ukončí. Aby sme sa vyhli týmto podmienkam ukončenia, môžeme použiť blok try catch v jazyku Java. V tomto článku sa dozvieme o Try, catch, throw a throws v Jave.
Prečo sa vyskytne výnimka?
Výnimka sa môže vyskytnúť z niekoľkých dôvodov, ako je problém so sieťovým pripojením, nesprávny vstup poskytnutý používateľom, otvorenie neexistujúceho súboru vo vašom programe atď.
Bloky a kľúčové slová používané na spracovanie výnimiek
1. skús v Jave
The skúste blok obsahuje množinu príkazov, kde môže nastať výnimka.
try { // statement(s) that might cause exception }> 2. chytať na Jave
Blok catch sa používa na zvládnutie neistého stavu bloku try. Po bloku try vždy nasleduje blok catch, ktorý spracováva výnimku, ktorá sa vyskytuje v súvisiacom bloku try.
catch { // statement(s) that handle an exception // examples, closing a connection, closing // file, exiting the process after writing // details to a log file. }> 3. hodiť do Javy
Kľúčové slovo throw sa používa na prenos riadenia z bloku try do bloku catch.
Nižšie je uvedená implementácia vyššie uvedeného prístupu:
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);> >}> >}> }> |
algoritmus pre bfs
>
>
ako previesť char na reťazec javaVýkon
Caught inside help(). Caught in main error name given below: java.lang.NullPointerException: error_unknown>
4. hádže v Jave
The hádže kľúčové slovo sa používa na spracovanie výnimiek bez bloku try & catch. Špecifikuje výnimky, ktoré môže metóda vyvolať volajúcemu a sama sa nespracuje.
Nižšie je uvedená implementácia vyššie uvedeného prístupu:
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.');> >}> >}> }> |
>
>Výkon
Inside fun(). caught in main.>
5. konečne na Jave
Vykoná sa po bloku catch. Používame ho na vloženie nejakého spoločného kódu (ktorý sa má vykonať bez ohľadu na to, či sa vyskytla výnimka alebo nie), keď existuje viacero blokov catch.
Príklad výnimky vygenerovanej systémom je uvedený nižšie:
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>
Nižšie je uvedená implementácia vyššie uvedeného prístupu:
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');> >}> >}> }> |
príklady java kódu
>
>Výkon
Exception caught:Division by zero I am in final block>
Časté otázky týkajúce sa Try Block v jazyku Java
1. Kedy by ste mali použiť bloky try catch?
Bloky Try catch sa používajú na zabránenie výnimkám, aby sa kód nezlomil pred úplným spustením.
2. Čo je to throw a throws v Jave?
Hod sa používa na prenos kontroly z bloku try na blok catch. Zatiaľ čo hody sa používajú na spracovanie výnimiek bez bloku try & catch. Throws špecifikuje výnimky, ktoré môže metóda vyvolať volajúcemu a sama sa nespracuje.
3. Môžeme mať dva bloky úlovkov?
Áno, s príkazmi try môžeme mať viacero blokov catch.