Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java-Ausnahmebehandlung

Java-Ausnahmebehandlung

Im Tutorial lernen wir anhand von Beispielen verschiedene Ansätze der Ausnahmebehandlung in Java kennen.

Im letzten Tutorial haben wir etwas über Java-Ausnahmen gelernt. Wir wissen, dass Ausnahmen die Ausführung eines Programms abnormal beenden.

Aus diesem Grund ist es wichtig, Ausnahmen zu behandeln. Hier ist eine Liste verschiedener Ansätze zur Behandlung von Ausnahmen in Java.


1. Java try...catch block

Der Try-Catch-Block wird verwendet, um Ausnahmen in Java zu behandeln. Hier ist die Syntax von try...catch blockieren:

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

Hier haben wir den Code, der möglicherweise eine Ausnahme generiert, innerhalb von try platziert Block. Alle try Block folgt ein catch blockieren.

Wenn eine Ausnahme auftritt, wird sie von catch abgefangen Block. Die catch Block kann nicht ohne den try verwendet werden blockieren.

Beispiel:Ausnahmebehandlung mit 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());
    }
  }
}

Ausgabe

ArithmeticException => / by zero

Im Beispiel versuchen wir, eine Zahl durch 0 zu teilen . Hier erzeugt dieser Code eine Ausnahme.

Um die Ausnahme zu behandeln, haben wir den Code 5 / 0 eingefügt innerhalb der try Block. Wenn nun eine Ausnahme auftritt, wird der Rest des Codes innerhalb des try Block wird übersprungen.

Die catch block fängt die Ausnahme ab und Anweisungen innerhalb des catch-Blocks werden ausgeführt.

Wenn keine der Anweisungen in try -Block generiert eine Ausnahme, die catch Block wird übersprungen.


2. Java schließlich blockieren

In Java der finally Block wird immer ausgeführt, egal ob es eine Ausnahme gibt oder nicht.

Die finally Block ist optional. Und für jeden try -Block darf es nur einen finally geben blockieren.

Die grundlegende Syntax von finally Block ist:

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

Wenn eine Ausnahme auftritt, wird der finally Block wird nach try...catch ausgeführt Block. Andernfalls wird es nach dem try-Block ausgeführt. Für jeden try -Block darf es nur einen finally geben blockieren.


Beispiel:Java-Ausnahmebehandlung mit dem finally-Block

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");
    }
  }
}

Ausgabe

ArithmeticException => / by zero
This is the finally block

Im obigen Beispiel teilen wir eine Zahl durch 0 innerhalb des try Block. Hier erzeugt dieser Code einen ArithmeticException .

Die Ausnahme wird von catch abgefangen Block. Und dann die finally Block wird ausgeführt.

Hinweis :Es empfiehlt sich, den finally zu verwenden Block. Das liegt daran, dass es wichtige Bereinigungscodes wie

enthalten kann

3. Java throw und throws Schlüsselwort

Der Java-throw Schlüsselwort wird verwendet, um explizit eine einzelne Ausnahme auszulösen.

Wenn wir throw eine Ausnahme, der Ablauf des Programms bewegt sich von try Block zum catch blockieren.

Beispiel:Ausnahmebehandlung mit 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();
  }
}

Ausgabe

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

Im obigen Beispiel werfen wir ausdrücklich den ArithmeticException mit dem throw Schlüsselwort.

Ebenso der throws Das Schlüsselwort wird verwendet, um die Art der Ausnahmen zu deklarieren, die innerhalb der Methode auftreten können. Es wird in der Methodendeklaration verwendet.

Beispiel:Java löst Schlüsselwort aus

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

Ausgabe

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

Wenn wir dieses Programm ausführen, wenn die Datei test.txt existiert nicht, FileInputStream wirft einen FileNotFoundException was den IOException erweitert Klasse.

Der findFile() Methode gibt an, dass ein IOException geworfen werden kann. Der main() Methode ruft diese Methode auf und behandelt die Ausnahme, wenn sie ausgelöst wird.

Wenn eine Methode keine Ausnahmen behandelt, muss die Art der Ausnahmen, die darin auftreten können, in throws angegeben werden Klausel.

Um mehr zu erfahren, besuchen Sie Java Throw und Throws.


Java

  1. Java-Operatoren
  2. Java-Kommentare
  3. Java for-each-Schleife
  4. Java-Strings
  5. Java-Schnittstelle
  6. Anonyme Java-Klasse
  7. Java versuchen ... fangen
  8. Java-Versuch-mit-Ressourcen
  9. Java-Anmerkungen
  10. Java-Assertionen