Estou escrevendo um programa, e preciso lançar uma exceção.
Caso eu faça:
try {
physicalPerson = repository.save(physicalPerson);
} catch (DataIntegrityViolationException error) {
throw new DataIntegrity("Não foi possível adicioanr um novo cliente", error);
return physicalPerson;
}
Vai tranquilo. Porém caso eu faça:
var physicalPerson = Optional.of(repository.save(physicalPerson)).orElseThrow(
() -> new DataIntegrity("qualquer coisa")).
return physicalPerson
nesse caso eu extendo DataIntegrity de DataIntegrityViolationException
A exceção não é capturada.
Gostaria de entender o porque. Me perdi um pouco aqui.