Maison > Java > javaDidacticiel > Comment puis-je gérer les exceptions vérifiées dans les expressions Java 8 Lambda ?

Comment puis-je gérer les exceptions vérifiées dans les expressions Java 8 Lambda ?

DDD
Libérer: 2024-12-16 21:22:19
original
384 Les gens l'ont consulté

How Can I Handle Checked Exceptions in Java 8 Lambda Expressions?

Gestion des exceptions dans les fonctions Lambda Java 8

Lors de la création de références à des méthodes utilisant des expressions lambda, il est essentiel de prendre en compte la gestion des exceptions. Les types de référence de fonction par défaut ne prennent pas en charge les exceptions vérifiées, telles que celles qui étendent IOException.

Pour résoudre ce problème, il existe deux approches :

1. Définir une interface fonctionnelle personnalisée

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

@FunctionalInterface
public interface CheckedFunction<T, R> {
  R apply(T t) throws IOException;
}
Copier après la connexion

Ensuite, utilisez l'interface fonctionnelle personnalisée interface pour définir votre référence de fonction :

void foo(CheckedFunction<String, Integer> f) { ... }
Copier après la connexion

2. Encapsuler la méthode vérifiée

Si vous n'avez pas de contrôle sur la méthode vérifiée, vous pouvez l'envelopper dans une 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

Avec le enveloppée, vous pouvez créer la référence de fonction comme suit :

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

Vous pouvez également utiliser une expression lambda avec une gestion des exceptions block :

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

En utilisant ces techniques, vous pouvez gérer avec élégance les exceptions vérifiées dans les fonctions lambda de Java 8, garantissant ainsi que votre code reste robuste et protégé contre les exceptions.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal