Verschil tussen worpen en worpen in Java

Schrijver: Laura McKinney
Datum Van Creatie: 1 April 2021
Updatedatum: 15 Kunnen 2024
Anonim
JAVA P3L7 - ARRAYS in Java (UITWERKINGEN)
Video: JAVA P3L7 - ARRAYS in Java (UITWERKINGEN)

Inhoud


De worpen en worpen zijn de sleutelwoorden die worden gebruikt bij het afhandelen van uitzonderingen. De werpen sleutelwoord wordt gebruikt om het exemplaar van de uitzondering dat door het programmeerapparaat is gemaakt, handmatig over te dragen aan de JVM. De worpen sleutelwoord gebruikt om de verantwoordelijkheid voor de afhandeling van de uitzondering over te dragen kwam in de methode voor aan de beller-methode. Het basisverschil tussen de worp en de worpen is dat het sleutelwoord throw het uitzonderingsobject gebruikt, terwijl het sleutelwoord throw de naam van de uitzonderingsklassen gebruikt.

  1. Vergelijkingstabel
  2. Definitie
  3. Belangrijkste verschillen
  4. Gevolgtrekking

Vergelijkingstabel

Vergelijkingsbasiswerpenworpen
basis-Het sleutelwoord throw gooit ons gemaakte uitzonderingsobject handmatig over naar JVM.Het sleutelwoord gooit wordt gebruikt om de verantwoordelijkheid voor het afhandelen van uitzonderingen te delegeren aan de beller van de methode.
Syntaxisgooi Throwable-instantie;return_type method_name (parameter-lijst) gooit ExceptionClass_list
{
// methode
}
Gevolgd doorHet sleutelwoord throw wordt gevolgd door een uitzonderingsobject.Het sleutelwoord gooit wordt gevolgd door de lijst met uitzonderingsklassen die in de methode kunnen voorkomen.
Aantal geworpen uitzonderingenHet throw-trefwoord kan een enkele uitzonderingsinstantie gooien.Het sleutelwoord gooit kan meerdere uitzonderingsklassen declareren, gescheiden door een komma.


Definitie van worp

Het trefwoord 'werpen”Wordt gebruikt om onze gemaakte uitzonderingsinstantie handmatig over te dragen aan de JVM (Java Virtual Machine). Als "throw" niet wordt gebruikt om een ​​uitzonderingsinstantie te werpen en de uitzondering optreedt, gooit het runtime-systeem de uitzonderingsinstantie intern naar JVM en wordt het programma abnormaal beëindigd. De algemene vorm van het sleutelwoord throw is:

gooi Throwable_instance;

Boven de Throwable_instance moet een object van de klasse Throwable staan. Primitieve typen zoals int, float of char en de instantie die niet kan worden weggegooid, kunnen niet worden weggegooid met het trefwoord throw.

Laten we een voorbeeld nemen om de trefwoordworp te begrijpen.

Class Test {Public static void main (String args) {throw new ArithmeticException ("/ by zero"); }}

In bovenstaande code gooit het trefwoord throw een instantie van de klasse Exception "ArithmeticException". Als het throw-trefwoord toen niet was gebruikt, zou de methode main () intern een uitzonderingsobject hebben gemaakt dat aan de JVM is overgedragen.


De punten om te onthouden over het trefwoord gooien:

  • Het draagt ​​het uitzonderingsobject handmatig over naar de JVM.
  • Het wordt het best gebruikt voor de door de gebruiker gedefinieerde uitzonderingen of aangepaste uitzonderingen.
  • Als het geheugen niet is toegewezen aan het uitzonderingsobject dat wordt gegooid met het trefwoord throw, treedt er een runtime-uitzondering op, NullPointerException.
  • Het sleutelwoord throw stopt de uitvoering van het programma onmiddellijk nadat het is opgetreden. we kunnen niet direct een statement schrijven na het throw-statement. Als we een staement direct na de worpinstructie schrijven, geeft de compiler een fout, onbereikbare instructie weer tijdens de compilatie.
  • Alleen objecten van de klasse Throwable kunnen worden weggegooid met het trefwoord throw. Als het gegooide object geen object van de klasse Throwable is, krijgen we een compilatietijdfout "Incompatibel type gevonden. . verplicht java.lang.Throwable ”

Opmerking:

Het sleutelwoord throw wordt in C ++, JAVA, C # gebruikt om handmatig een uitzondering te maken.

Definitie van worpen

De "worpen"Trefwoord wordt gebruikt om de verantwoordelijkheid voor de afhandeling van de uitzondering in de methode te delegeren aan de beller-methode. De beller-methode is verantwoordelijk voor de afhandeling, het kan elke andere methode of JVM zijn. Het verklaart de lijst met uitzonderingsklassen die in de methode kunnen voorkomen.

Het gebruik van het sleutelwoord gooit overtuigt de compiler dat de uitzondering die in de methode is opgetreden, moet worden afgehandeld door de methode van de beller. Er treedt dus geen compilatiefout op. Maar de beller-methode moet de uitzondering verwerken of de verantwoordelijkheid om de uitzondering af te handelen delegeren aan de hiërarchiemethode. Wanneer de runtime-uitzondering zich voordoet, voorkomt dit zelfs na het gebruik van het throw-trefwoord niet de abnormale beëindiging van het programma. Als de beller-methode main () is, verwerkt de standaard JVM de uitzondering.

De algemene vorm van het sleutelwoord gooit is:

return_type method_name (parameter-lijst) gooit exceptionClass_list {// body of method}

We kunnen zien dat het worpwoord sleutelwoord wordt weergegeven na de handtekening van de methode en dat het de lijst met uitzonderingsklassen kan bevatten die in de methode kunnen voorkomen. De lijst met uitzonderingsklassen die worden geschreven nadat het zoekwoord gooit, wordt gescheiden door de komma.

Laten we een voorbeeld nemen om het sleutelwoord gooit te begrijpen.

calss Test {public static void main (String args) gooit InterruptedException {thread sleep (10000); }}

In de bovenstaande code wordt de hoofdthread enige tijd in slaapstand gezet met de methode sleep (). Wanneer de hoofdmethode in de slaapstand staat, is het mogelijk dat de andere threads de hoofdthread onderbreken. Maar het sleutelwoord gooit wordt gebruikt na de handtekening van de methode main (), dus het programma zou gemakkelijk compileren. Het sleutelwoord gooit geeft de gecontroleerde uitzonderingsklasse InterruptedException aan. Als een andere thread de hoofdthread tijdens runtime onderbreekt, zou het sleutelwoord throw die uitzondering overdragen aan de methode caller of main (), namelijk JVM. De JVM zou het programma abnormaal beëindigen.

De punten om te onthouden over gooit trefwoord:

  • Het sleutelwoord gooit wordt alleen gebruikt voor het aangeven van de aangevinkte uitzonderingsklassen. Het gebruik van het sleutelwoord gooit voor een ongecontroleerde uitzondering heeft geen invloed.
  • Als de methode de uitzondering niet zelf wil verwerken, delegeert deze die uitzondering aan de beller-methode van die klasse met behulp van het sleutelwoord gooit.
  • Het gebruik ervan maakt alleen een vlotte compilatie van het programma mogelijk.
  • Als er tijdens runtime een uitzondering optreedt, wordt het programma abnormaal beëindigd, zelfs na het gebruik van het sleutelwoord gooit.
  • Het wordt aanbevolen om het try / catch-blok te gebruiken voor normale beëindiging van het programma als er een uitzondering optreedt tijdens runtime.

Opmerking:

Het trefwoord gooit alleen gebruikt in Java. C ++ en C # gebruiken het sleutelwoord gooit niet.

  1. Het sleutelwoord gooit de verantwoordelijkheid voor het afhandelen van uitzonderingen handmatig over aan JVM, terwijl het sleutelwoord gooit de verantwoordelijkheid voor het afhandelen van uitzonderingen overhandigt aan de beller-methode van de code waar een uitzondering is opgetreden.
  2. Het sleutelwoord throw wordt gevolgd door het uitzonderingsobject dat aan de JVM wordt overgedragen. Aan de andere kant wordt worpwoord gevolgd door de uitzonderingsklassen die in de methode kunnen voorkomen.
  3. Het throw-sleutelwoord kan een enkel uitzonderingsobject tegelijk werpen, terwijl het throw-sleutelwoord meerdere uitzonderingsklassen tegelijk kan scheiden, gescheiden door een komma.

Gevolgtrekking:

Het throw-trefwoord kan het beste worden gebruikt voor de aangepaste uitzondering. Het try / catch-blok is het beste voor het omgaan met de uitzonderingen in vergelijking met het worpwoord.