logo

iemet un iemet Java

Java, izņēmumu apstrāde ir viens no efektīvajiem līdzekļiem izpildlaika kļūdu novēršanai, lai varētu saglabāt regulāru lietojumprogrammas plūsmu. Java izņēmumu apstrāde ir mehānisms, lai apstrādātu izpildlaika kļūdas, piemēram, ClassNotFoundException, IOException, SQLException, RemoteException utt.

Šajā rakstā mēs uzzināsim par mest un met Java, kas var apstrādāt Java izņēmumus.



python chr funkcija

Java metiens

Atslēgvārdu “mest” Java izmanto, lai skaidri norādītu metodes vai jebkura koda bloka izņēmumu. Mēs varam iemest gan atzīmēts vai neatzīmēts izņēmums . Izmest atslēgvārdu galvenokārt izmanto, lai izmestu pielāgotus izņēmumus.

Sintakse Java metienos

 throw   Instance  Example: throw new ArithmeticException('/ by zero');>

Bet šis izņēmums, t.i. Piemērs jābūt tipa Metams vai apakšklase Metams .

Piemēram , Izņēmums ir izmetamo un lietotāja definētu izņēmumu apakšklase, kas parasti paplašina izņēmuma klasi . Atšķirībā no C++, tādus datu tipus kā int, char, floats vai klases, kuras nav izmetamas, nevar izmantot kā izņēmumus.



Programmas izpildes plūsma apstājas uzreiz pēc tam, kad tiek izpildīts metiena paziņojums un tuvākais aplikums mēģināt bloks tiek pārbaudīts, lai redzētu, vai tajā ir a noķert paziņojums, kas atbilst izņēmuma veidam. Ja tiek atrasta atbilstība, kontrole tiek pārsūtīta uz šo paziņojumu, pretējā gadījumā nākamais pievienojums mēģināt bloks ir pārbaudīts utt. Ja nav atbilstības noķert tiek atrasts, tad noklusējuma izņēmumu apstrādātājs apturēs programmu.

Java metienu piemēri

1. piemērs:

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

>

>

Izvade

Caught inside fun(). Caught in main.>

2. piemērs

Java




// Java program that demonstrates> // the use of throw> class> Test {> >public> static> void> main(String[] args)> >{> >System.out.println(>1> />0>);> >}> }>

>

>

Izvade

Exception in thread 'main' java.lang.ArithmeticException: / by zero>

Java metieni

throws ir Java atslēgvārds, kas tiek izmantots metodes parakstā, lai norādītu, ka šī metode var radīt kādu no uzskaitītajiem veida izņēmumiem. Šo metožu izsaucējam ir jārisina izņēmums, izmantojot try-catch bloku.

Java metienu sintakse

 type method_name(parameters) throws exception_list exception_list is a comma separated list of all the exceptions which a method might throw.>

Programmā, ja ir iespēja izvirzīt izņēmumu, kompilators vienmēr mūs par to brīdina un obligāti mums ir jārīkojas ar šo pārbaudīto izņēmumu, pretējā gadījumā mēs saņemsim kompilēšanas laika kļūdu, sakot nepaziņots izņēmums XXX ir jānoķer vai jāpaziņo par izmestu . Lai novērstu šo kompilēšanas laika kļūdu, mēs varam rīkoties ar izņēmumu divos veidos:

  1. Izmantojot mēģiniet noķert
  2. Izmantojot metieni atslēgvārds

Mēs varam izmantot atslēgvārdu throws, lai deleģētu zvanītājam atbildību par izņēmumu apstrādi (tā var būt metode vai JVM), tad zvanītāja metode ir atbildīga par šī izņēmuma apstrādi.

Java izmet piemērus

1. piemērs

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

>

>

Izvade

error: unreported exception InterruptedException; must be caught or declared to be thrown>

Paskaidrojums

Iepriekš minētajā programmā mēs saņemam kompilēšanas laika kļūdu, jo pastāv izņēmuma iespēja, ja galvenais pavediens iet miega režīmā, citi pavedieni saņem iespēju izpildīt main () metodi, kas izraisīs InterruptedException.

2. piemērs

Java




// Java program to illustrate throws> class> tst {> >public> static> void> main(String[] args)> >throws> InterruptedException> >{> >Thread.sleep(>10000>);> >System.out.println(>'Hello Geeks'>);> >}> }>

>

>

Izvade

Hello Geeks>

Paskaidrojums

Iepriekš minētajā programmā, izmantojot atslēgvārdu throws, mēs apstrādājām InterruptedException un izvadi iegūsim kā Sveiki Geeks

3. piemērs

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

>

>

Izvade

Inside fun(). caught in main.>

Svarīgi punkti, kas jāatceras par metieniem Atslēgvārds

  • metienu atslēgvārds ir nepieciešams tikai pārbaudītiem izņēmumiem, un atslēgvārda throws izmantošana neatzīmētiem izņēmumiem ir bezjēdzīga.
  • throws atslēgvārds ir nepieciešams tikai, lai pārliecinātu kompilatoru, un throws atslēgvārda izmantošana nenovērš neparastu programmas pārtraukšanu.
  • Ar metienu atslēgvārda palīdzību varam sniegt informāciju metodes izsaucējam par izņēmumu.