Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Quando lançar exceção, a regra de negócio é o principal fator de decisão?

Quando devemos lançar uma exceção? No vídeo foi abordado os exemplos de CPF e Transferência bancária, no caso da validação do CPF, parece fazer mais sentido apenas retornar para o usuário que o CPF está inválido, não acho que precisaria ser tão alarmante. No caso da transferência, seria uma operação ilegal/inválida, acho que também pela sua criticidade. Mas fico na dúvida em que caso devo só fazer uma validação e retornar para o usuário e quando deveria lançar uma exceção? e como se relaciona com a regra de negócio?

2 respostas
solução!

Olá Gabriel, tudo bem?

A decisão de quando lançar uma exceção pode depender de vários fatores, incluindo a regra de negócio, a gravidade do erro e o fluxo de controle do programa.

Em geral, você deve lançar uma exceção quando ocorrer uma condição excepcional, ou seja, algo que impede que um método cumpra seu propósito e que não deveria ter ocorrido nesse nível. Por exemplo, se você tem um método que salva alterações em um registro em um banco de dados e, por algum motivo, isso não pode ser feito (por exemplo, ocorre algum erro no banco de dados), então você pode lançar uma exceção para indicar a falha.

Por outro lado, se um método está apenas verificando a existência de um arquivo, provavelmente não deveria lançar uma exceção se o arquivo não existir, uma vez que o objetivo do método é verificar a existência.

No caso da validação do CPF, se a validação é uma operação comum e esperada, pode fazer mais sentido retornar um valor booleano ou algum tipo de objeto de resultado que indique se a validação foi bem-sucedida ou não. Se um CPF inválido é uma condição excepcional e indica um erro grave que deve interromper o fluxo normal do programa, então lançar uma exceção pode ser apropriado.

Em resumo, a decisão de quando lançar uma exceção depende do contexto específico e das necessidades do seu programa. É uma prática comum lançar exceções para indicar condições de erro que são inesperadas ou que requerem uma mudança especial no fluxo de controle do programa.

Espero que isso ajude! Se você tiver mais perguntas, fique à vontade para perguntar.

Olá Pablo, desculpa a demora para retornar. Ficou mais claro, por exemplo o método file_exists não lançará uma exceção pois é seu trabalho verificar se existe o arquivo ou não. Vou seguir os links e continuar estudando, obrigado.