Maison > Java > javaDidacticiel > Lancer une exception depuis une expression lambda

Lancer une exception depuis une expression lambda

Patricia Arquette
Libérer: 2025-01-12 06:41:45
original
308 Les gens l'ont consulté

Lancement d'exceptions dans Lambdas

  • Une expression lambda peut lever des exceptions.
  • Pour les exceptions vérifiées :
  • L'exception levée doit être compatible avec celles listées dans la clause throws de la méthode abstraite de l'interface fonctionnelle.

Exigences pour les exceptions vérifiées

  • Si lambda lève une exception vérifiée (par exemple IOException) :
  • La méthode abstraite de l'interface fonctionnelle doit inclure la même exception dans la clause throws.
  • Sans cette clause, l'expression lambda sera incompatible avec la méthode et provoquera une erreur de compilation.

Exemple : lancement d'exception dans Lambda
Code :

import java.io.*;

interface MyIOAction {
    boolean ioAction(Reader rdr) throws IOException;
}

class LambdaExceptionDemo {
    public static void main(String args[]) {
        // Esta lambda de bloco pode lançar uma IOException.
        // A cláusula throws deve estar presente em ioAction().
        MyIOAction myIO = (rdr) -> {
            int ch = rdr.read(); // Pode lançar IOException
            // Lógica adicional pode ser inserida aqui
            return true;
        };
    }
}

Copier après la connexion

Explication :
lance la clause :

  • La méthode ioAction(Reader rdr) dans l'interface fonctionnelle MyIOAction inclut les IOExceptions.
  • Cela permet au lambda associé à la méthode d'utiliser des opérations qui peuvent lancer IOException, telles que rdr.read().

Erreur sans lancer Clause :

  • Si la clause throws IOException est supprimée de ioAction, le programme ne se compile pas.
  • Cela se produit car l'exception levée par la lambda (IOException) n'est pas gérée ou déclarée dans la méthode.

Remarque importante :

  • Compatibilité entre Lambdas et interfaces fonctionnelles :
  • Une expression lambda doit être compatible avec la méthode abstraite de l'interface fonctionnelle.
  • Pour les exceptions vérifiées, cette compatibilité nécessite que les exceptions levées par le lambda soient répertoriées dans la clause throws de la méthode.

Test pratique :
Essayez de supprimer la clause throws de ioAction dans le code ci-dessus. Cela entraînera une erreur de compilation en raison d'une incompatibilité entre lambda et la méthode d'interface fonctionnelle.

Lance uma exceção de dentro de uma expressão lambda

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal