Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Quando usar Exception?

Ola Guilherme, tenho explorado um pouco mais sobre Exceptions na MSDN. Lendo sobre o tema fiquei em duvida de quando realmente usar Exception, lançar uma exception.

Nao seria melhor criar metodos que garantam a correta digitacao do usuario ao inves de tratar como excecao quando ele nao coloca um parametro correto? o que me preocupou foi o texto abaixo sobre Performance.

Considerações sobre desempenho (https://docs.microsoft.com/pt-br/dotnet/api/system.exception?view=netframework-4.7.2)

Lançando ou tratando uma exceção consome uma quantidade significativa de recursos do sistema e o tempo de execução. Gera exceções somente para lidar com condições extraordinários realmente, não para manipular eventos previsíveis ou controle de fluxo. Por exemplo, em alguns casos, como quando você estiver desenvolvendo uma biblioteca de classes, é razoável lançar uma exceção se um argumento de método é inválido porque você espera que seu método ser chamado com parâmetros válidos. Um argumento de método inválido, se não for o resultado de um erro de uso, significa que alguma coisa extraordinária ocorreu. Por outro lado, lançará uma exceção se a entrada do usuário é inválida, porque você pode esperar que os usuários insiram ocasionalmente dados inválidos. Em vez disso, fornecem um mecanismo de repetição para que os usuários podem inserir uma entrada válida. Nem você deve usar exceções para lidar com erros de uso. Em vez disso, use asserções para identificar e corrigir erros de uso.

Além disso, não lance uma exceção quando um código de retorno é suficiente; Não converta um código de retorno em uma exceção; e fazer catch não rotineiramente uma exceção, ignorá-lo e, em seguida, continuar o processamento.

Voce acha interessante entender melhor e considerar usar o Debug.Assert e Trace.Assert e deixar excecoes para casos realmente excepcionais como nullReference, memory etc. O que recomenda? Ou devo continuar usando exceptions para validacoes de argumentos, operacoes como divisor por zero etc?

1 resposta
solução!

Eu pensei nas mesmas coisas quando fiz esse curso. O professor só fez para nível de aprendizado. Não usamos na prática isso, na verdade a prática é muito complexa para sequer mostrarmos aqui. Envolve banco de dados, senhas, autenticações. Nos cursos verá que existem muitas maneiras diferentes e melhores de fazer as coisas. Não busque o melhor jeito por hora, busque apenas aprender. No futuro passará por cursos de refatoração que irá ensinar a melhor forma de fazer as coisas.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software