1
resposta

Quando usar o throw?

Não consegui pegar a ideia central por trás do throw.

Se ele lança uma exceção que aborta a execução do código, por que raios alguém lançaria isso em um código no mundo real ?

Pode parecer uma pergunta bem estupida, mas só o try/catch não seria suficiente?

1 resposta

Amigo, apenas o try/catch não é suficiente para que a aplicação "trate" uma exception. Se você nao implementar seu codigo no catch, um erro generico e nada amigavel será disparado.

A função do throw é lançar a exceção para o método chamador, ou seja, leva o erro adiante.

Por exemplo, imagine que sua aplicação chama um serviço, e o erro ocorre na camada na própria camada do serviço, tendo um throw no método, a exception é levada até a aplicação, e assim você pode saber e tratar uma mensagem de erro amigável para o usuário.

Try/catch é uma forma de capturar o exception de forma organizada. Claro que você pode declarar um try/catch com o catch vazio, apesar de não ser uma boa pratica, isto até pode impedir que sua aplicação aborte, dependendo do caso, mas lembre-se que dependendo do contexto, é necessário que a execução seja cancelada em caso de erro e não continue a execução, pelo simples fato de nao poder seguir por conta de dependencia de uma regra.

Pense no try como "programa, tente executar algo" e o catch como "programa, trate desta forma". Quase nunca o erro disparado pela aplicação é facilmente entendido por usuários comuns, cabendo ao desenvolvedor tratar as possíveis exceções e formatar uma mensagem de saída amigável. Isso facilita inclusive na manutenção do código para outros desenvolvedores.

Espero ter ajudado.

Bons estudos.

Você pode obter mais detalhes e exemplos no link abaixo:

https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/keywords/throw

https://docs.microsoft.com/pt-br/dotnet/csharp/programming-guide/exceptions/how-to-handle-an-exception-using-try-catch