如果 CompletableFuture 代码中的字段为空,我必须发送异常:
public CompletableFuture<ChildDTO> findChild(@NotEmpty String id) {
return ChildRepository.findAsyncById(id)
.thenApply(optionalChild -> optionalChild
.map(Child -> ObjectMapperUtils.map(Child, ChildDTO.class))
.orElseThrow(CurrentDataNotFoundException::new));
}
这个想法是,如果孩子的字段为空,在这种情况下,我必须抛出一个自定义异常,我不太确定如何实现这一点。
我的想法是使用 thenAccept 方法并发送异常,如下所示:
public CompletableFuture<ChildDTO> findChild(@NotEmpty String id) {
return ChildRepository.findAsyncById(id)
.thenApply(optionalChild -> optionalChild
.map(Child -> ObjectMapperUtils.map(Child, ChildDTO.class))
.orElseThrow(CurrentDataNotFoundException::new))
}.thenAccept{
........................
}
ObjectMapperUtils Code:
public static <S, D> D map(final S entityToMap, Class<D> expectedClass) {
return modelMapper.map(entityToMap, expectedClass);
}
public class ChildDTO {
@NotEmpty
private String id;
@PassengerIdConstraint
private String ownerId;
@NotEmpty
private String firstName;
@NotEmpty
private String lastName;
private String nickName;
@ChildAgeConstraint
private Integer age;
@NotNull
private Gender gender;
@NotEmpty
private String language;
我必须评估数据库中的lastName 是否为空,我必须抛出异常。
有任何想法吗?
白猪掌柜的
相关分类