logo

heittää ja heittää Javassa

Javassa poikkeuskäsittely on yksi tehokkaista tavoista käsitellä ajonaikaisia ​​virheitä, jotta sovelluksen säännöllinen kulku voidaan säilyttää. Java Exception Handling on mekanismi, joka käsittelee ajonaikaisia ​​virheitä, kuten ClassNotFoundException, IOException, SQLException, RemoteException jne.

Tässä artikkelissa opimme heittää ja heittää Javassa, joka pystyy käsittelemään poikkeuksia Javassa.

Java-heitto

Javassa heitto-avainsanaa käytetään nimenomaisesti heittämään poikkeus menetelmästä tai mistä tahansa koodilohkosta. Voimme heittää kumpaa tahansa valittu tai valitsematon poikkeus . Heitto-avainsanaa käytetään pääasiassa mukautettujen poikkeuksien heittämiseen.



Syntaksi Java-heitossa

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

Mutta tämä poikkeus esim. Ilmentymä on oltava tyyppiä Heitettävä tai alaluokka Heitettävä .

Esimerkiksi , Poikkeus on heitettävien poikkeuksien alaluokka, ja käyttäjän määrittämät poikkeukset laajentavat tyypillisesti poikkeusluokkaa . Toisin kuin C++, tietotyyppejä, kuten int, char, floats tai ei-heitettäviä luokkia, ei voida käyttää poikkeuksina.

Ohjelman suoritus pysähtyy heti, kun heittolause on suoritettu ja lähin sulkeva luku yrittää lohko tarkistetaan, onko siinä a ottaa kiinni lauseke, joka vastaa poikkeuksen tyyppiä. Jos se löytää osuman, control siirretään kyseiseen lauseeseen, muuten seuraavaan liitteenä yrittää lohko tarkistetaan ja niin edelleen. Jos ei vastaa ottaa kiinni löytyy, oletuspoikkeuskäsittelijä pysäyttää ohjelman.

Java-heitto esimerkkejä

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

>

>

Lähtö

Caught inside fun(). Caught in main.>

Esimerkki 2

Java




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

>

>

Lähtö

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

Java-heittoja

throws on Java-avainsana, jota käytetään menetelmän allekirjoituksessa osoittamaan, että tämä menetelmä saattaa heittää jonkin luetelluista tyyppipoikkeuksista. Näihin menetelmiin kutsuvan on käsiteltävä poikkeus käyttämällä try-catch-estoa.

Java-heittojen syntaksi

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

Jos ohjelmassa on mahdollisuus nostaa poikkeus, kääntäjä aina varoittaa siitä ja pakollisesti meidän tulee käsitellä tämä tarkistettu poikkeus, muuten saamme käännösaikavirheen sanomalla ilmoittamaton poikkeus XXX on otettava kiinni tai julistettava heitetyksi . Tämän käännösaikavirheen estämiseksi voimme käsitellä poikkeuksen kahdella tavalla:

  1. Käyttämällä kokeile kiinni
  2. Käyttämällä heittoja avainsana

Voimme käyttää heitot-avainsanaa siirtääksemme vastuun poikkeusten käsittelystä soittajalle (Se voi olla menetelmä tai JVM), jolloin soittajan menetelmä on vastuussa poikkeuksen käsittelystä.

Java heittää esimerkkejä

Esimerkki 1

Java




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

>

>

Lähtö

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

Selitys

Yllä olevassa ohjelmassa saamme käännösaikavirheen, koska on olemassa poikkeuksen mahdollisuus, jos pääsäie menee nukkumaan, muut säikeet saavat mahdollisuuden suorittaa main()-menetelmän, joka aiheuttaa InterruptedExceptionin.

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

>

>

Lähtö

Hello Geeks>

Selitys

Yllä olevassa ohjelmassa käsittelimme heitot-avainsanalla InterruptedException ja saamme tulosteen muodossa Hei Geeks

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

>

>

Lähtö

Inside fun(). caught in main.>

Tärkeitä asioita, jotka on muistettava heitoista Avainsana

  • heittää-avainsana vaaditaan vain tarkistetuille poikkeuksille ja heitto-avainsanan käyttö tarkistamattomille poikkeuksille on merkityksetöntä.
  • throws-avainsana vaaditaan vain kääntäjän vakuuttamiseksi, eikä throws-avainsanan käyttö estä ohjelman epänormaalia lopettamista.
  • Heitto-avainsanan avulla voimme antaa menetelmän kutsujalle tietoa poikkeuksesta.