Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

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-

  • Wat is uitzondering?
  • Waarom hebben we een uitzondering nodig?
  • Hoe om te gaan met uitzondering
  • Probeer Vangblok
  • Java Exception class Hiërarchie
  • Java eindelijk blokkeren

Er zijn twee soorten fouten:

  1. Compileertijdfouten
  2. Runtime-fouten

Compilatietijdfouten kunnen weer in twee soorten worden ingedeeld:

  • Syntaxisfouten
  • Semantische fouten

Voorbeeld van syntaxisfouten:

In plaats van int a; . te declareren je hebt het per ongeluk aangegeven als in a; waarvoor de compiler een fout zal genereren.

Voorbeeld:u heeft een variabele int a; . gedeclareerd en na enkele regels code declareer je opnieuw een geheel getal als int a; . Al deze fouten worden gemarkeerd wanneer u de code compileert.

Voorbeeld van runtime-fouten

Een runtime-fout wordt een Exceptions . genoemd 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 de 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 uitzondering

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 Exception Handler.

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 (gebruik de 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" loops is niet effectief wanneer uw code meerdere Java-uitzonderingen heeft om te verwerken.

class connect{
	if(Server Up){
	 // code to connect to server
	}
	else{
	 // code to connect to BACKUP server
	}
}

Probeer Vangblok

Java biedt een ingebouwde uitzonderlijke bediening.

  1. De normale code gaat naar een PROBEER blok.
  2. De code voor het afhandelen van uitzonderingen gaat naar de CATCH 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 wordt afgehandeld in Java.

Syntaxis voor het gebruik van try &catch

try{
    statement(s)
}
catch (exceptiontype name){
	statement(s)
}

Voorbeeld

Stap 1) Kopieer de volgende code naar een editor

class JavaException {
   public static void main(String args[]){
      int d = 0;
      int n = 20;
      int fraction = n/d;
     System.out.println("End Of Main");
   }
}

Stap 2) Sla het bestand op en compileer de code. Voer het programma uit met het commando 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 catch ons zal helpen om met deze uitzondering om te gaan. We zullen de uitzondering die de regel code veroorzaakt in een try . plaatsen blok, gevolgd door een vangst blok. Kopieer de volgende code in de editor.

class JavaException {
 public static void main(String args[]) {
  int d = 0;
  int n = 20;
  try {
   int fraction = n / d;
   System.out.println("This line will not be Executed");
  } catch (ArithmeticException e) {
   System.out.println("In the catch Block due to Exception = " + e);
  }
  System.out.println("End Of Main");
 }
}

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, de controlestroom naar het catch-blok springt.

Opmerking: Het AritmeticException-object "e" bevat informatie over de opgetreden uitzondering, wat handig kan zijn bij het nemen van herstelacties.

Java Exception class Hiërarchie

Nadat één catch-instructie is uitgevoerd, worden de andere omzeild en wordt de uitvoering voortgezet 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 niet door ons programma 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 het try-and-cat-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 een uitzondering voor delen door nul, of een uitzondering voor een nulaanwijzer, enz.
  • IO-uitzondering wordt gegenereerd tijdens invoer- en uitvoerbewerkingen
  • Onderbroken uitzonderingen in Java, worden gegenereerd tijdens meerdere threads.

Voorbeeld: Het nesten van try and catch-blokken begrijpen

Stap 1) Kopieer de volgende code naar een editor.

class JavaException {
 public static void main(String args[]) {
  try {
   int d = 1;
   int n = 20;
   int fraction = n / d;
   int g[] = {
    1
   };
   g[20] = 100;
  }
  /*catch(Exception e){
  	System.out.println("In the catch block due to Exception = "+e);
  }*/
  catch (ArithmeticException e) {
   System.out.println("In the catch block due to Exception = " + e);
  } catch (ArrayIndexOutOfBoundsException e) {
   System.out.println("In the catch block due to Exception = " + e);
  }
  System.out.println("End Of Main");
 }
}

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

Stap 3) Er wordt een ArrayIndexOutOfBoundsException gegenereerd. Verander de waarde van int d in 0. Bewaar, compileer en voer de code uit.

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) Compilatiefout? 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 wordt uitgevoerd, ongeacht of er een uitzondering wordt gemaakt in het try-blok. Het is optioneel te gebruiken met een try-blok.

 try {
  statement(s)
 } catch (ExceptiontType name) {

  statement(s)

 } finally {

  statement(s)

 }

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 naar een editor.

class JavaException {
   public static void main(String args[]){
    try{
       int d = 0;
       int n =20;
       int fraction = n/d;
    }
  catch(ArithmeticException e){
    System.out.println("In the catch block due to Exception = "+e);
  }
  finally{
	System.out.println("Inside the finally block");
  }
}
}

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. Bewaar, compileer en voer de code uit en observeer de output.Bottom of Form

Samenvatting :

  • Een Uitzondering is een runtime-fout die de normale uitvoering van het programma onderbreekt. Verstoring tijdens de uitvoering van het programma wordt een fout of uitzondering genoemd.
  • Fouten worden ingedeeld in twee categorieën
    • Compilatietijdfouten – Syntaxisfouten, semantische fouten
    • Runtime-fouten - Uitzondering
  • Een robuust programma moet alle uitzonderingen afhandelen en ga door met de normale uitvoering van het programma. Java biedt een ingebouwde uitzonderlijke verwerkingsmethode
  • Exception Handler is een set code die een uitzondering afhandelt . Uitzonderingen kunnen in Java worden afgehandeld met try &catch.
  • Probeer blokkeren :Normale code komt op dit blok.
  • Vangblok :Als er een fout is in de normale code, dan zal het in dit blok gaan

Java

  1. Afhandeling van Python-uitzonderingen met behulp van de instructie try, behalve en tenslotte
  2. Afhandeling van Java-uitzonderingen
  3. Java proberen ... vangen
  4. Java-vangst Meerdere uitzonderingen
  5. C++ Exception Handling:Try, Catch, Throw Voorbeeld
  6. Java String charAt() Methode met Voorbeeld
  7. Java String endsWith() Methode met voorbeeld
  8. Java BufferedReader:hoe een bestand in Java te lezen met voorbeeld
  9. Invoegsorteeralgoritme in Java met programmavoorbeeld
  10. Python Exception Handling:probeer, vang, eindelijk &verhoog [Voorbeeld]
  11. Java 9 - Probeer met middelenverbetering