Accéder au contenu principal
Documents
Tableaux JavaProgrammation orientée objet en JavaTraitement des fichiers en JavaIntroduction To JavaLes bases du langage JavaMots-clés Java

mots-clés throws en Java

Le mot-clé throws en Java est utilisé dans les déclarations de méthodes pour spécifier que la méthode peut lancer une ou plusieurs exceptions. Elle permet aux méthodes de signaler qu'elles peuvent rencontrer des conditions exceptionnelles qu'elles ne sont pas en mesure de gérer.

Utilisation

Le mot-clé throws est placé dans la signature de la méthode après la liste des paramètres et avant le corps de la méthode. Elle est suivie d'une liste de classes d'exceptions séparées par des virgules que la méthode peut lancer.

Syntax

returnType methodName(parameters) throws ExceptionType1, ExceptionType2 {
    // method body
}
  • returnType: Le type de retour de la méthode.
  • methodName: Le nom de la méthode.
  • parameters: Les paramètres de la méthode.
  • ExceptionType1, ExceptionType2: Les exceptions que la méthode peut lever.

Exemples

Exemple 1 : Exception unique

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

Dans cet exemple, la méthode readFile déclare qu'elle peut lancer un IOException. Cela indique que la méthode peut rencontrer une erreur d'entrée/sortie qu'elle ne peut pas gérer en interne.

Exemple 2 : Exceptions multiples

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

Ici, la méthode processFile déclare qu'elle peut lancer à la fois IOException et FileNotFoundException. Cela informe l'appelant que la méthode peut rencontrer l'une ou l'autre de ces exceptions.

Exemple 3 : Exception personnalisée

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

Dans cet exemple, une exception personnalisée CustomException est créée. La méthode validateAge déclare qu'elle peut lancer cette exception personnalisée si l'âge est inférieur à 18 ans.

Conseils et bonnes pratiques

  • Déclarer des exceptions spécifiques: Déclarez les exceptions les plus spécifiques possibles plutôt que d'utiliser une classe générique Exception. Cela rend le code plus lisible et plus facile à maintenir.
    public void method() throws IOException, SQLException {
        // method body
    }
  • Exceptions relatives aux documents: Documentez toujours les exceptions qu'une méthode peut lancer à l'aide de commentaires Javadoc. Cela permet aux autres développeurs de comprendre les risques potentiels et de les gérer de manière appropriée.
    /**
     * 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
    }
  • Utilisez throws avec discernement: N'utilisez le mot-clé throws que lorsque la méthode ne peut pas gérer l'exception en interne. Si possible, traitez les exceptions au sein de la méthode afin d'obtenir une application plus robuste et plus conviviale.
    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());
        }
    }
  • Propager les exceptions: Lorsque vous propagez des exceptions, assurez-vous que la méthode appelante est capable de les gérer ou de les propager plus haut dans la pile d'appels.

Apprendre l'essentiel de Java

Développez vos compétences en Java à partir de la base et maîtrisez les concepts de programmation.
Commencez à apprendre gratuitement