J'ai metohod MyService # create qui lance CustomException. J'appelle cette méthode carte # en option comme ci-dessous:Comment gérer les exceptions dans les expressions lambda
return Optional.ofNullable(obj)
.map(optObj -> {
try {
return myService.create(optObj);
} catch (CustomException e) {
return new ResponseEntity<>(e.getMessage(), HttpStatus.BAD_REQUEST);
}
})
.map(created -> new ResponseEntity<>("Operation successful", HttpStatus.CREATED))
.orElse(new ResponseEntity<>("Operation failed", HttpStatus.BAD_REQUEST));
Et quand je l'appelle cette méthode avec des arguments qui provoquent exception alors CustomException est attrapée, mais dans le résultat que je reçois Opération réussie et le statut 200. Comment gérer cette exception lambda et renvoyer un message d'exception?
Non, il jette exception dans lambda. Je veux attraper et retourner le bon résultat – user
Quelle est la raison d'utiliser 'Optional 'du tout? Un simple 'if - then - else' suffit ici, peut-être en compagnon avec un' try-catch'. – Seelenvirtuose
essayez d'utiliser la méthode wrapper qui sera responsable de la gestion de l'exception – sForSujit