Probeer Catch in Java: Exception Handling Voorbeeld

Wat is uitzondering in Java?

Uitzondering in Java is een gebeurtenis die de uitvoering van programma-instructies onderbreekt en de normale stroom van programma-uitvoering verstoort. Het is een object dat informatie over een foutgebeurtenis die binnen een methode is opgetreden, inpakt en wordt doorgegeven aan het runtime-systeem. In Java worden uitzonderingen voornamelijk gebruikt om verschillende soorten foutcondities aan te geven.

In deze tutorial leer je-

Er zijn twee soorten fouten:

  1. Tijdfouten compileren
  2. Runtime-fouten

Compilatietijdfouten kunnen weer in twee typen worden ingedeeld:

  • Syntaxisfouten
  • Semantische fouten

Voorbeeld syntaxisfouten:

In plaats van |__+_| . te declareren je hebt het per ongeluk gedeclareerd als |_+_| waarvoor de compiler een fout zal genereren.

Voorbeeld: U hebt een variabele gedeclareerd |_+_| en na enkele regels code declareer je opnieuw een geheel getal als |_+_|. Al deze fouten worden gemarkeerd wanneer u de code compileert.

Voorbeeld van runtime-fouten

Een runtime-fout wordt een genoemd Uitzonderingen fout. Het is elke gebeurtenis die de normale uitvoering van het programma onderbreekt.

Voorbeelden voor uitzonderingen zijn rekenkundige uitzondering, Nullpointer-uitzondering, Delen door nul-uitzondering, enz.

Uitzonderingen in Java zijn iets waar ontwikkelaars geen controle over hebben.

Klik hier als de video niet toegankelijk is



Waarom hebben we een uitzondering nodig?

Stel dat u een programma hebt gecodeerd om toegang te krijgen tot de server. Het werkte prima terwijl je de code aan het ontwikkelen was.

Tijdens de eigenlijke productierun is de server niet beschikbaar. Wanneer uw programma toegang probeerde te krijgen, wordt er een uitzondering gemaakt.

Hoe om te gaan met uitzonderingen

Tot nu toe hebben we gezien dat uitzonderingen buiten de controle van de ontwikkelaar liggen. Maar uw codefout de schuld geven van milieukwesties is geen oplossing. U hebt een robuuste programmering nodig, die zorgt voor uitzonderlijke situaties. Een dergelijke code staat bekend als Uitzonderingsbehandelaar.

In ons voorbeeld zou een goede afhandeling van uitzonderingen zijn, wanneer de server niet beschikbaar is, verbinding maken met de back-upserver.

Om dit te implementeren, voert u uw code in om verbinding te maken met de server (met traditionele if en else-voorwaarden).

U controleert of de server down is. Zo ja, schrijf de code om verbinding te maken met de back-upserver.

Een dergelijke organisatie van code, het gebruik van 'if' en 'else' lus is niet effectief wanneer uw code meerdere Java-uitzonderingen heeft om te verwerken. |__+_|

Probeer Catch Block

Java biedt een ingebouwde uitzonderlijke afhandeling.

  1. De normale code gaat in a PROBEREN blok.
  2. De code voor het afhandelen van uitzonderingen gaat naar de VANGST blok

In ons voorbeeld bevat het TRY-blok de code om verbinding te maken met de server. CATCH-blok bevat de code om verbinding te maken met de back-upserver.

Als de server up is, wordt de code in het CATCH-blok genegeerd. In het geval dat de server niet beschikbaar is, wordt er een uitzondering gemaakt en wordt de code in het catch-blok uitgevoerd.

Dit is dus hoe de uitzondering in Java wordt afgehandeld.

Syntaxis voor het gebruik van try & catch int a;

Voorbeeld

Stap 1) Kopieer de volgende code naar een editor |_+_|

Stap 2) Sla het bestand op en compileer de code. Voer het programma uit met de opdracht java JavaException

Stap 3) Een rekenkundige uitzondering - delen door nul wordt weergegeven zoals hieronder voor regel # 5 en regel # 6 wordt nooit uitgevoerd

Stap 4) Laten we nu eens kijken hoe try-and-cat ons zal helpen om met deze uitzondering om te gaan. We zullen de uitzondering die de coderegel veroorzaakt in a . plaatsen proberen blok, gevolgd door a vangst blok. Kopieer de volgende code in de editor. |__+_|

Stap 5) Bewaar, compileer en voer de code uit. U krijgt de volgende uitvoer:

Zoals u ziet, wordt de uitzondering afgehandeld en wordt de laatste regel code ook uitgevoerd. Houd er ook rekening mee dat regel #7 niet wordt uitgevoerd omdat: zodra een uitzondering wordt verhoogd, springt de stroom van controle naar het catch-blok.

Opmerking: Het AritmeticException Object 'e' bevat informatie over de opgetreden uitzondering die nuttig kan zijn bij het nemen van herstelacties.

Java-uitzonderingsklasse Hiërarchie

Nadat een catch-statement is uitgevoerd, worden de andere omzeild en gaat de uitvoering door na het try/catch-blok. De geneste vangstblokken volgen de uitzonderingshiërarchie.

  • Alle uitzonderingsklassen in Java breiden de klasse 'Throwable' uit. Throwable heeft twee subklassen, Error en Exception
  • De klasse Error definieert de uitzondering of de problemen die onder normale omstandigheden door ons programma niet worden verwacht, bijvoorbeeld Geheugenfout, Hardwarefout, JVM-fout, enz.
  • De klasse Exception vertegenwoordigt de uitzonderingen die door ons programma kunnen worden afgehandeld, en ons programma kan van deze uitzondering worden hersteld met behulp van try and catch-blok
  • Een Runtime-uitzondering is een subklasse van de uitzonderingsklasse. De uitzondering van dit type vertegenwoordigt een uitzondering die optreedt tijdens runtime en die niet kan worden gevolgd tijdens het compileren. Een uitstekend voorbeeld van hetzelfde is delen door nul uitzondering, of null pointer exception, etc
  • IO-uitzondering wordt gegenereerd tijdens invoer- en uitvoerbewerkingen
  • Onderbroken uitzonderingen in Java worden gegenereerd tijdens multiple threading.
Voorbeeld: Het nesten van try-and-cat-blokken begrijpen

Stap 1) Kopieer de volgende code in een editor. |__+_|

Stap 2) Sla het bestand op en compileer de code. Voer het programma uit met de opdracht, java Java-uitzondering .

Stap 3) Er wordt een ArrayIndexOutOfBoundsException gegenereerd. Verander de waarde van int d in 0. Opslaan, compileren en uitvoeren van de code.

Stap 4 ) Er moet een rekenkundige uitzondering worden gegenereerd.

Stap 5) Uncomment regel #10 naar regel #12. Bewaar, compileer en voer de code uit.

Stap 6) Compilatie fout? Dit komt omdat Exception de basisklasse is van ArithmeticException Exception. Elke uitzondering die door ArithmeticException wordt gegenereerd, kan ook door de Exception-klasse worden afgehandeld. Het catch-blok van ArithmeticException krijgt dus nooit de kans om te worden uitgevoerd, waardoor het overbodig is. Vandaar de compilatiefout.

Java eindelijk blokkeren

Het laatste blok is uitgevoerd ongeacht of er een uitzondering wordt gemaakt in het try-blok. Het is optioneel te gebruiken met een try-blok. |__+_|

Als er een uitzondering wordt gemaakt in het try-blok, wordt het blok uiteindelijk uitgevoerd nadat het catch-blok is uitgevoerd.

Voorbeeld

Stap 1) Kopieer de volgende code in een editor. |__+_|

Stap 2) Bewaar, compileer en voer de code uit.

Stap 3) Verwachte resultaten. Ten slotte wordt het blok uitgevoerd, ook al is er een uitzondering opgetreden.

Stap 4) Verander de waarde van variabele d = 1. Sla de code op, compileer en voer de code uit en observeer de uitvoer. Bodem van formulier

Samenvatting :

  • Een Uitzondering is een runtime-fout die de normale stroom van programma-uitvoering onderbreekt. Verstoring tijdens de uitvoering van het programma wordt aangeduid als fout of uitzondering.
  • Fouten worden ingedeeld in twee categorieën:
    • Compileertijdfouten - Syntaxisfouten, semantische fouten
    • Runtime-fouten - Uitzondering
  • TOT robuust programma zou alle uitzonderingen moeten afhandelen en ga door met de normale uitvoering van het programma. Java biedt een ingebouwde uitzonderlijke verwerkingsmethode
  • Exception Handler is een set code die: behandelt een uitzondering . Uitzonderingen kunnen in Java worden afgehandeld met try & catch.
  • Probeer blok : Normale code komt op dit blok.
  • Vangstblok : Als er een fout is in de normale code, gaat deze naar dit blok