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

Você está correto, não é certo lançar uma exceção e deixar que ela quebre a execução do programa.

O ponto é que a exceção deve ser tratada, só não dentro do método que levantou a exceção.

Isso é útil para que você possa deixar cada método somente com a sua responsabilidade, inclusive unificar o tratamento de exceções.

E algumas vezes os frameworks já disponibilizam algum tratamento padrão para exceções. Nos frameworks web, como vraptor, spring ou asp.net, quando ocorre uma exceção é gerada uma página com um código 500 no navegador do usuário. Mas a execução do seu serviço contínua, afinal o erro foi tratado pelo servidor.

De toda forma a ideia não é deixar a exceção lançada sem tratamento, ela deve ser tratada num momento apropriado.