1
resposta

Não entendi a definição de Inner Exception

Não entendi a definição de Inner Exception. O que é? Por que e quando usá-la? O que essa propriedade possibilita na construção do código?

Grato desde já!

1 resposta

O Inner Exception, na real, é só um jeito de anexar uma Exceção dentro de outra Exceção. Poderia ser também algo como "a exceção que originou outra exceção". Na tradução literal seria "a excessão mais interna".

É uma prática comum, na área de desenvolvimento, você não expor os erros internos da sua aplicação. Imagina, por exemplo, eu dizer para o usuário que houve "um erro na conexão entre a aplicação e o seu banco de dados"... esse erro só interessa a mim, que mantém a aplicação, e não ao usuário. Ele não precisa saber disso, e na verdade só vai deixá-lo mais confuso (capaz até dele achar que a culpa é dele, ou da internet dele).

Por outro lado, imagine que esse erro interno na verdade seja algo que só o usuário deva saber (algo como "o seu cartão de credito 7403179013585913 foi recusado pela operadora de cartões"). Um erro, talvez, que nem venha da sua aplicação, mas da operadora de cartões. Quem desenvolve ou opera essa aplicação não precisa saber essa informação sigilosa do cartão do usuário. Precisa apenas saber que a operação falhou, e talvez registrar isso em um log ou contador. Mas a mensagem ainda precisa chegar ao usuário...

Então a gente usa essa Inner Exception pra lidar com essas informações mais "privadas" da sua aplicação, e criar uma outra Exception por cima, mais "segura" ou "abstrata", sem deixar de repassar a informação privada a quem precisa.

Na prática, não tem nada ultra seguro que garanta a privacidade dessa info, claro. Mas se você tem uma empresa com um compliance razoável, e lida com LGPD ou GDPR, certamente vai ter uns problemas ao registrar informações sensíveis do usuário em um log aberto. Daí esse Inner Exception parece uma boa solução de implementação.