logo

gooien en gooien op Java

In Java: afhandeling van uitzonderingen is een van de effectieve manieren om runtime-fouten af ​​te handelen, zodat de reguliere stroom van de applicatie behouden kan blijven. Java Exception Handling is een mechanisme voor het afhandelen van runtimefouten zoals ClassNotFoundException, IOException, SQLException, RemoteException, enz.

java regex $

In dit artikel zullen we meer te weten komen throw en throws in Java die uitzonderingen in Java kunnen verwerken.

Java-worp

Het sleutelwoord throw in Java wordt gebruikt om expliciet een uitzondering te genereren vanuit een methode of een ander codeblok. We kunnen beide gooien aangevinkte of niet-aangevinkte uitzondering . Het trefwoord throw wordt voornamelijk gebruikt om aangepaste uitzonderingen te genereren.



Syntaxis in Java-worp

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

Maar deze uitzondering, d.w.z. Voorbeeld moet van type zijn Gooibaar of een subklasse daarvan Gooibaar .

Bijvoorbeeld , een Exception is een subklasse van Throwable en door de gebruiker gedefinieerde uitzonderingen breiden doorgaans de Exception-klasse uit. In tegenstelling tot C++ kunnen gegevenstypen zoals int, char, floats of niet-werpbare klassen niet als uitzonderingen worden gebruikt.

De uitvoeringsstroom van het programma stopt onmiddellijk nadat de throw-instructie is uitgevoerd en de dichtstbijzijnde omhulling poging blok wordt gecontroleerd om te zien of het een vangst instructie die overeenkomt met het type uitzondering. Als er een overeenkomst wordt gevonden, wordt gecontroleerd naar die verklaring overgebracht, anders wordt deze bijgevoegd poging blok wordt gecontroleerd, enzovoort. Indien geen match vangst wordt gevonden, zal de standaard uitzonderingshandler het programma stoppen.

Voorbeelden van Java-worpen

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

>

>

Uitvoer

Caught inside fun(). Caught in main.>

Voorbeeld 2

Java




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

>

char en int java
>

Uitvoer

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

Java gooit

throws is een sleutelwoord in Java dat wordt gebruikt in de handtekening van een methode om aan te geven dat deze methode mogelijk een van de vermelde type-uitzonderingen genereert. De aanroeper van deze methoden moet de uitzondering afhandelen met behulp van een try-catch-blok.

Syntaxis van Java-worpen

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

Als er in een programma een kans bestaat om een ​​uitzondering te genereren, waarschuwt de compiler ons er altijd voor en moeten we verplicht die gecontroleerde uitzondering afhandelen. Anders krijgen we een foutmelding tijdens het compileren: niet-gemelde uitzondering XXX moet worden opgevangen of als gegooid worden verklaard . Om deze compileerfout te voorkomen, kunnen we de uitzondering op twee manieren afhandelen:

  1. Door gebruik te maken van try-catch
  2. Door gebruik te maken van de gooit trefwoord

We kunnen het trefwoord throws gebruiken om de verantwoordelijkheid voor het afhandelen van uitzonderingen te delegeren aan de aanroeper (het kan een methode of JVM zijn), waarna de aanroepmethode verantwoordelijk is voor het afhandelen van die uitzondering.

Java gooit voorbeelden

voorbeeld 1

Java




greibach normale vorm
// 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'>);> >}> }>

>

>

Uitvoer

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

Uitleg

In het bovenstaande programma krijgen we een compileerfout omdat er een kans is op een uitzondering als de hoofdthread gaat slapen, andere threads krijgen de kans om de main() -methode uit te voeren, wat InterruptedException zal veroorzaken.

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

c++ splitsreeks

>

>

Uitvoer

Hello Geeks>

Uitleg

In het bovenstaande programma hebben we, door het trefwoord throws te gebruiken, de InterruptedException afgehandeld en krijgen we de uitvoer as Hallo Geeks

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

tekenreeks om te chatten
>

>

Uitvoer

Inside fun(). caught in main.>

Belangrijke punten om te onthouden over worpen Trefwoord

  • het trefwoord throws is alleen vereist voor gecontroleerde uitzonderingen en het gebruik van het trefwoord throws voor niet-gecontroleerde uitzonderingen is zinloos.
  • het trefwoord throws is alleen nodig om de compiler te overtuigen en het gebruik van het trefwoord throws voorkomt niet dat het programma op abnormale wijze wordt beëindigd.
  • Met behulp van het trefwoord throws kunnen we de aanroeper van de methode informatie geven over de uitzondering.