Maison >Java >javaDidacticiel >Comment gérer les exceptions vérifiées dans les fonctions Java 8 Lambda ?

Comment gérer les exceptions vérifiées dans les fonctions Java 8 Lambda ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-04 15:01:43146parcourir

How to Handle Checked Exceptions in Java 8 Lambda Functions?

Fonctions Lambda avec gestion des exceptions dans Java 8

Les expressions Lambda permettent un code concis et élégant, mais elles ne prennent pas en charge les exceptions vérifiées. Cette limitation pose un défi lorsque vous travaillez avec des méthodes qui génèrent des exceptions.

Considérez l'exemple suivant :

Integer myMethod(String s) throws IOException

Comment pouvez-vous définir une référence lambda à cette méthode ?

La solution dépend du scénario :

  1. Définir une interface fonctionnelle personnalisée avec coché Exception :

    Si vous contrôlez le code, vous pouvez créer une interface fonctionnelle personnalisée qui déclare l'exception vérifiée :

    @FunctionalInterface
    public interface CheckedFunction<T, R> {
        R apply(T t) throws IOException;
    }

    Ensuite, utilisez cette interface dans votre code :

    void foo(CheckedFunction<String, Integer> f) { ... }
  2. Enveloppez la méthode dans une méthode sans exception Version :

    Si vous ne pouvez pas modifier la méthode, enveloppez-la dans une nouvelle méthode qui ne déclare pas d'exception vérifiée :

    public Integer myWrappedMethod(String s) {
        try {
            return myMethod(s);
        } catch (IOException e) {
            throw new UncheckedIOException(e);
        }
    }

    Ensuite, créez la référence lambda :

    Function<String, Integer> f = (String t) -> myWrappedMethod(t);

    Vous pouvez également utiliser une expression lambda entourée de curl accolades :

    Function<String, Integer> f =
        (String t) -> {
            try {
               return myMethod(t);
            } catch (IOException e) {
                throw new UncheckedIOException(e);
            }
        };

En comprenant ces techniques, vous pouvez gérer efficacement les exceptions vérifiées tout en utilisant les fonctions lambda dans Java 8.

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!

Déclaration:
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