Direkt zum Inhalt
Urkunden
Java SchlüsselwörterJava-ArraysJava Objektorientierte ProgrammierungJava File HandlingEinführung in JavaGrundlagen der Java-Sprache

throws Schlüsselwort in Java

Das Schlüsselwort throws wird in Java in Methodendeklarationen verwendet, um anzugeben, dass die Methode eine oder mehrere Ausnahmen auslösen kann. So können die Methoden signalisieren, dass sie auf außergewöhnliche Bedingungen stoßen könnten, für die sie nicht gerüstet sind.

Verwendung

Das Schlüsselwort throws wird in der Methodensignatur nach der Parameterliste und vor dem Methodenrumpf platziert. Es folgt eine durch Komma getrennte Liste von Ausnahmeklassen, die die Methode auslösen kann.

Syntax

returnType methodName(parameters) throws ExceptionType1, ExceptionType2 {
    // method body
}
  • returnType: Der Rückgabetyp der Methode.
  • methodName: Der Name der Methode.
  • parameters: Die Parameter der Methode.
  • ExceptionType1, ExceptionType2: Die Ausnahmen, die die Methode auslösen kann.

Beispiele

Beispiel 1: Einzelne Ausnahme

public void readFile(String fileName) throws IOException {
    FileReader file = new FileReader(fileName);
    BufferedReader fileInput = new BufferedReader(file);

    // Read file content
    for (int counter = 0; counter < 3; counter++)&nbsp;
        System.out.println(fileInput.readLine());

    fileInput.close();
}

In diesem Beispiel deklariert die Methode readFile, dass sie ein IOException auslösen kann. Dies zeigt an, dass die Methode möglicherweise auf einen Ein-/Ausgabefehler stößt, den sie intern nicht behandeln kann.

Beispiel 2: Mehrere Ausnahmen

public void processFile(String fileName) throws IOException {
    FileReader file = new FileReader(fileName);
    BufferedReader fileInput = new BufferedReader(file);

    // Read file content
    for (int counter = 0; counter < 3; counter++)
        System.out.println(fileInput.readLine());

    fileInput.close();
}

Hier erklärt die Methode processFile, dass sie sowohl IOException als auch FileNotFoundException auslösen kann. Damit wird der Aufrufer darüber informiert, dass die Methode auf eine dieser Ausnahmen stoßen kann.

Beispiel 3: Zoll-Ausnahme

public class CustomException extends Exception {
    public CustomException(String message) {
        super(message);
    }
}

public void validateAge(int age) throws CustomException {
    if (age < 18) {
        throw new CustomException("Age must be 18 or older.");
    }
    System.out.println("Age is valid.");
}

In diesem Beispiel wird eine benutzerdefinierte Ausnahme CustomException erstellt. Die Methode validateAge erklärt, dass sie diese benutzerdefinierte Ausnahme auslösen kann, wenn das Alter weniger als 18 Jahre beträgt.

Tipps und bewährte Praktiken

  • Erkläre besondere Ausnahmen: Deklariere möglichst spezifische Ausnahmen, anstatt eine generische Exception Klasse zu verwenden. Das macht den Code besser lesbar und wartbar.
    public void method() throws IOException, SQLException {
        // method body
    }
  • Ausnahmen dokumentieren: Dokumentiere die Ausnahmen, die eine Methode auslösen kann, immer in Javadoc-Kommentaren. Das hilft anderen Entwicklern, die potenziellen Risiken zu verstehen und angemessen mit ihnen umzugehen.
    /**
     * Reads a file and prints its content.
     * 
     * @param fileName the name of the file to read
     * @throws IOException if an I/O error occurs
     */
    public void readFile(String fileName) throws IOException {
        // method body
    }
  • Verwende throws mit Bedacht: Verwende das Schlüsselwort throws nur, wenn die Methode die Ausnahme nicht intern behandeln kann. Wenn möglich, behandle Ausnahmen innerhalb der Methode, um die Anwendung robuster und benutzerfreundlicher zu machen.
    public void readFile(String fileName) {
        try {
            FileReader file = new FileReader(fileName);
            BufferedReader fileInput = new BufferedReader(file);
            // Read file content
            for (int counter = 0; counter < 3; counter++) 
                System.out.println(fileInput.readLine());
            fileInput.close();
        } catch (IOException e) {
            System.err.println("An error occurred: " + e.getMessage());
        }
    }
  • Verbreite Ausnahmen: Wenn du Ausnahmen weitergibst, stelle sicher, dass die aufrufende Methode in der Lage ist, sie zu behandeln oder sie auf dem Aufrufstapel weiterzugeben.

Java Grundlagen lernen

Baue deine Java-Kenntnisse von Grund auf auf und beherrsche Programmierkonzepte.
Kostenloses Lernen beginnen