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

Afhandeling van Java-uitzonderingen

Afhandeling Java-uitzondering

In de zelfstudie leren we over verschillende benaderingen van het afhandelen van uitzonderingen in Java met behulp van voorbeelden.

In de laatste tutorial hebben we geleerd over Java-uitzonderingen. We weten dat uitzonderingen de uitvoering van een programma abnormaal beëindigen.

Daarom is het belangrijk om met uitzonderingen om te gaan. Hier is een lijst met verschillende benaderingen om uitzonderingen in Java af te handelen.

  • probeer... vangblok
  • eindelijk blokkeren
  • zoekwoord gooien en gooien

1. Java try...catch blok

Het try-catch-blok wordt gebruikt om uitzonderingen in Java af te handelen. Hier is de syntaxis van try...catch blok:

try {
  // code
}
catch(Exception e) {
  // code
}

Hier hebben we de code geplaatst die een uitzondering zou kunnen genereren in de try blok. Elke try blok wordt gevolgd door een catch blok.

Wanneer er een uitzondering optreedt, wordt deze opgevangen door de catch blok. De catch blok kan niet worden gebruikt zonder de try blok.

Voorbeeld:afhandeling van uitzonderingen met try...catch

class Main {
  public static void main(String[] args) {

    try {

      // code that generate exception
      int divideByZero = 5 / 0;
      System.out.println("Rest of code in try block");
    }
    
    catch (ArithmeticException e) {
      System.out.println("ArithmeticException => " + e.getMessage());
    }
  }
}

Uitvoer

ArithmeticException => / by zero

In het voorbeeld proberen we een getal te delen door 0 . Hier genereert deze code een uitzondering.

Om de uitzondering af te handelen, hebben we de code, 5 / 0 binnen de try blok. Als er nu een uitzondering optreedt, wordt de rest van de code binnen de try blok wordt overgeslagen.

De catch block vangt de uitzondering op en instructies in het catch-blok worden uitgevoerd.

Als geen van de instructies in de try blok genereert een uitzondering, de catch blok wordt overgeslagen.


2. Java eindelijk blokkeren

In Java is de finally blok wordt altijd uitgevoerd, ongeacht of er een uitzondering is of niet.

De finally blok is optioneel. En voor elke try blok, er kan maar één finally . zijn blok.

De basissyntaxis van finally blok is:

try {
  //code
}
catch (ExceptionType1 e1) { 
  // catch block
}
finally {
  // finally block always executes
}

Als er een uitzondering optreedt, wordt de finally blok wordt uitgevoerd na de try...catch blok. Anders wordt het uitgevoerd na het try-blok. Voor elke try blok, kan er maar één finally . zijn blok.


Voorbeeld:afhandelen van Java-uitzonderingen met gebruik van definitief blok

class Main {
  public static void main(String[] args) {
    try {
      // code that generates exception
      int divideByZero = 5 / 0;
    }

    catch (ArithmeticException e) {
      System.out.println("ArithmeticException => " + e.getMessage());
    }
    
    finally {
      System.out.println("This is the finally block");
    }
  }
}

Uitvoer

ArithmeticException => / by zero
This is the finally block

In het bovenstaande voorbeeld delen we een getal door 0 binnen de try blok. Hier genereert deze code een ArithmeticException .

De uitzondering wordt opgevangen door de catch blok. En dan de finally blok wordt uitgevoerd.

Opmerking :Het is een goede gewoonte om de finally . te gebruiken blok. Het is omdat het belangrijke opschoningscodes kan bevatten, zoals,

  • code die per ongeluk per ongeluk kan worden overgeslagen, doorgaan of breken
  • een bestand of verbinding sluiten

3. Java throw en throws trefwoord

De Java throw trefwoord wordt gebruikt om expliciet een enkele uitzondering te genereren.

Wanneer we throw een uitzondering, de stroom van het programma gaat van de try blok naar de catch blok.

Voorbeeld:afhandeling van uitzonderingen met Java-throw

class Main {
  public static void divideByZero() {

    // throw an exception
    throw new ArithmeticException("Trying to divide by 0");
  }

  public static void main(String[] args) {
    divideByZero();
  }
}

Uitvoer

Exception in thread "main" java.lang.ArithmeticException: Trying to divide by 0
        at Main.divideByZero(Main.java:5)
        at Main.main(Main.java:9)

In het bovenstaande voorbeeld gooien we expliciet de ArithmeticException met behulp van de throw zoekwoord.

Evenzo is de throws sleutelwoord wordt gebruikt om het type uitzonderingen aan te geven dat binnen de methode kan voorkomen. Het wordt gebruikt in de methodedeclaratie.

Voorbeeld:Java gooit trefwoord

import java.io.*;

class Main {
  // declareing the type of exception
  public static void findFile() throws IOException {

    // code that may generate IOException
    File newFile = new File("test.txt");
    FileInputStream stream = new FileInputStream(newFile);
  }

  public static void main(String[] args) {
    try {
      findFile();
    }
    catch (IOException e) {
      System.out.println(e);
    }
  }
}

Uitvoer

java.io.FileNotFoundException: test.txt (The system cannot find the file specified)

Als we dit programma uitvoeren en het bestand test.txt bestaat niet, FileInputStream gooit een FileNotFoundException die de IOException . verlengt klasse.

De findFile() methode specificeert dat een IOException kan worden gegooid. De main() methode roept deze methode aan en handelt de uitzondering af als deze wordt gegenereerd.

Als een methode geen exceptions afhandelt, moet het type exceptions dat erin kan voorkomen worden gespecificeerd in de throws clausule.

Ga voor meer informatie naar Java worpen en worpen.


Java

  1. Java-operators
  2. Java-opmerkingen
  3. Java voor elke lus
  4. Java-strings
  5. Java-interface
  6. Java anonieme klasse
  7. Java proberen ... vangen
  8. Java proberen-met-bronnen
  9. Java-annotaties
  10. Java-beweringen
  11. Statische variabele in Java:wat is statisch blok en methode [voorbeeld]