V Javi, obravnavanje izjem je eno od učinkovitih sredstev za obravnavo napak med izvajanjem, tako da se lahko ohrani redni tok aplikacije. Ravnanje z izjemami Java je mehanizem za obravnavanje napak med izvajanjem, kot so ClassNotFoundException, IOException, SQLException, RemoteException itd.
V tem članku bomo spoznali vrže in vrže v Javi, ki lahko obravnava izjeme v Javi.
Java met
Ključna beseda throw v Javi se uporablja za eksplicitno vračanje izjeme iz metode ali katerega koli bloka kode. Lahko vržemo bodisi označena ali nepreverjena izjema . Ključna beseda throw se večinoma uporablja za vračanje izjem po meri.
Sintaksa v Java throw
throw Instance Example: throw new ArithmeticException('/ by zero');> Toda ta izjema, tj. Primerek mora biti vrste Za metanje ali podrazred Za metanje .
Na primer , je izjema podrazred Throwable in uporabniško definirane izjeme običajno razširijo razred Exception. Za razliko od C++ tipov podatkov, kot so int, char, floats ali razredi, ki jih ni mogoče metati, ni mogoče uporabiti kot izjeme.
Tok izvajanja programa se ustavi takoj po izvedbi stavka vrženja in najbližjega obkrožanja poskusi blok se preveri, ali ima a ulov izjava, ki ustreza vrsti izjeme. Če najde ujemanje, se Controlled prenese v ta stavek, ki je sicer naslednji priložen poskusi blok je preverjen itd. Če ni ujemanja ulov je najden, bo privzeti obravnavalec izjem zaustavil program.
Primeri metanja Java
Primer 1:
Java
// Java program that demonstrates the use of throw> class> ThrowExcep {> >static> void> fun()> >{> >try> {> >throw> new> NullPointerException(>'demo'>);> >}> >catch> (NullPointerException e) {> >System.out.println(>'Caught inside fun().'>);> >throw> e;>// rethrowing the exception> >}> >}> >public> static> void> main(String args[])> >{> >try> {> >fun();> >}> >catch> (NullPointerException e) {> >System.out.println(>'Caught in main.'>);> >}> >}> }> |
>
>
Izhod
Caught inside fun(). Caught in main.>
Primer 2
Java
// Java program that demonstrates> // the use of throw> class> Test {> >public> static> void> main(String[] args)> >{> >System.out.println(>1> />0>);> >}> }> |
>
>
Izhod
Exception in thread 'main' java.lang.ArithmeticException: / by zero>
Java meče
throws je ključna beseda v Javi, ki se uporablja v podpisu metode za označevanje, da bi ta metoda lahko vrgla eno od navedenih izjem vrste. Klicatelj teh metod mora obravnavati izjemo z blokom try-catch.
Sintaksa metanja Java
type method_name(parameters) throws exception_list exception_list is a comma separated list of all the exceptions which a method might throw.>
Če v programu obstaja možnost sprožitve izjeme, nas prevajalnik vedno opozori na to in obvezno bi morali obravnavati to preverjeno izjemo. V nasprotnem primeru bomo prejeli napako med prevajanjem neprijavljeno izjemo XXX je treba ujeti ali razglasiti za vrženo . Da preprečimo to napako v času prevajanja, lahko izjemo obravnavamo na dva načina:
- Z uporabo poskusi ujeti
- Z uporabo vrže ključna beseda
Ključno besedo throws lahko uporabimo za prenos odgovornosti za obravnavo izjeme na klicatelja (lahko je to metoda ali JVM), nato pa je za obravnavo te izjeme odgovorna metoda klicatelja.
Java vrže primere
Primer 1
Java
// Java program to illustrate error in case> // of unhandled exception> class> tst {> >public> static> void> main(String[] args)> >{> >Thread.sleep(>10000>);> >System.out.println(>'Hello Geeks'>);> >}> }> |
>
>
Izhod
error: unreported exception InterruptedException; must be caught or declared to be thrown>
Pojasnilo
V zgornjem programu dobimo napako časa prevajanja, ker obstaja možnost izjeme, če glavna nit spi, druge niti pa dobijo možnost, da izvedejo metodo main(), kar bo povzročilo InterruptedException.
Primer 2
Java
// Java program to illustrate throws> class> tst {> >public> static> void> main(String[] args)> >throws> InterruptedException> >{> >Thread.sleep(>10000>);> >System.out.println(>'Hello Geeks'>);> >}> }> |
>
>
Izhod
Hello Geeks>
Pojasnilo
V zgornjem programu smo z uporabo ključne besede throws obdelali InterruptedException in izhod bomo dobili kot Pozdravljeni Geeki
Primer 3
Java
// Java program to demonstrate working of throws> class> ThrowsExecp {> >static> void> fun()>throws> IllegalAccessException> >{> >System.out.println(>'Inside fun(). '>);> >throw> new> IllegalAccessException(>'demo'>);> >}> >public> static> void> main(String args[])> >{> >try> {> >fun();> >}> >catch> (IllegalAccessException e) {> >System.out.println(>'caught in main.'>);> >}> >}> }> |
>
je poseben znak
>
Izhod
Inside fun(). caught in main.>
Pomembne točke o metih Ključna beseda
- ključna beseda throws je potrebna samo za preverjene izjeme in uporaba ključne besede throws za nepreverjene izjeme je nesmiselna.
- ključna beseda throws je potrebna le za prepričevanje prevajalnika in uporaba ključne besede throws ne prepreči nenormalne prekinitve programa.
- S pomočjo ključne besede throws lahko klicatelju metode posredujemo informacije o izjemi.