logo

Java Išbandykite Catch Block

Java kalboje išimtis yra nepageidaujamas arba netikėtas įvykis, įvykęs programos vykdymo metu. Kai įvyksta išimtis, programos vykdymas nutraukiamas. Norėdami išvengti šių nutraukimo sąlygų, „Java“ galime naudoti bandomąjį gaudymo bloką. Šiame straipsnyje sužinosime apie „Išbandykite, gaudyk, mesk ir mesk“ „Java“.

Kodėl atsiranda išimtis?

Išimtis gali atsirasti dėl kelių priežasčių, pvz., tinklo ryšio problemos, netinkamo vartotojo pateikto įvesties, neegzistuojančio failo atidarymo programoje ir kt.

Išimčių tvarkymui naudojami blokai ir raktiniai žodžiai

1. pabandyk su Java

The bandyti bloke yra teiginių rinkinys, kuriame gali atsirasti išimtis.



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

2. sugauti Java

Sugavimo blokas naudojamas neapibrėžtai bandomojo bloko būklei valdyti. Po bandymo bloko visada seka gaudymo blokas, kuris apdoroja išimtį, atsirandančią susijusiame bandymo bloke.

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

3. mesti Java

Raktinis žodis mesti naudojamas valdymui perkelti iš try bloko į gaudymo bloką.

Toliau pateikiamas pirmiau minėto metodo įgyvendinimas:

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);> >}> >}> }>

r c kalba
>

>

Išvestis

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

4. meta Java

The metimai raktinis žodis naudojamas išimtims tvarkyti be try & catch bloko. Jame nurodomos išimtys, kurias metodas gali pateikti skambinančiajam ir pats neapdoroja.

Toliau pateikiamas pirmiau minėto metodo įgyvendinimas:

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.');> >}> >}> }>

>

>

Išvestis

Inside fun(). caught in main.>

5. pagaliau Java

Jis vykdomas po gaudymo bloko. Mes naudojame jį tam, kad įdėtume bendrą kodą (kuris turi būti vykdomas neatsižvelgiant į tai, ar buvo išimtis, ar ne), kai yra keli gaudymo blokai.

Toliau pateikiamas sistemos sugeneruotos išimties pavyzdys:

dvejetainių medžių rūšys
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>

Toliau pateikiamas pirmiau minėto metodo įgyvendinimas:

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');> >}> >}> }>

>

>

Išvestis

Exception caught:Division by zero I am in final block>

„Java“ bandymo blokavimo DUK

1. Kada turėtumėte naudoti bandomuosius gaudymo blokus?

Išbandykite gaudymo blokus, kad būtų išvengta išimčių, kad kodas nenutrūktų prieš visišką vykdymą.

2. Kas yra mesti ir išmesti Java?

Metimas naudojamas valdymui perkelti iš try bloko į gaudymo bloką. Tuo tarpu metimai naudojami išimčių valdymui be try & catch bloko. Metimai nurodo išimtis, kurias metodas gali pateikti skambinančiajam ir pats neapdoroja.

3. Ar galime turėti du gaudymo blokus?

Taip, mes galime turėti kelis gaudymo blokus su try teiginiais.