Exceção

1 resposta
R

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.

1 Resposta

Rodrigo_Costa3

Oi Rodrigo! Tudo bem?

Na verdade é bem tranquilo utilizar exceptions.

Não existe relação entre a exceção capturada pelo try catch e a nova excessão que você quer arremessar.

O importante é criar um construtor que receba a mensagem e um throwable, de forma que, quando for arremessar a nova exception, você preserve o erro original, para não se perder informação importante para diagnosticar erros no seu programa. Segundo vi no seu código, você está fazendo corretamente.

Rodrigo

Criado 28 de março de 2019
Ultima resposta 6 de abr. de 2019
Respostas 1
Participantes 2