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
Libérer: 2025-01-04 15:01:43
original
139 Les gens l'ont consulté

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
Copier après la connexion

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;
    }
    Copier après la connexion

    Ensuite, utilisez cette interface dans votre code :

    void foo(CheckedFunction<String, Integer> f) { ... }
    Copier après la connexion
  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);
        }
    }
    Copier après la connexion

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

    Function<String, Integer> f = (String t) -> myWrappedMethod(t);
    Copier après la connexion

    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);
            }
        };
    Copier après la connexion

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!

source:php.cn
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