Pela explicação do Nico, no main (ou seja, quem usa os métodos) é quem deve, tratar as exceptions com try/catch. Não entendi porque no main. Não deveriam ser tratadas no métodos das classes? Qual o problema disso?
Pela explicação do Nico, no main (ou seja, quem usa os métodos) é quem deve, tratar as exceptions com try/catch. Não entendi porque no main. Não deveriam ser tratadas no métodos das classes? Qual o problema disso?
Eu também estou fazendo esse curso e pelo que entendi foi:
No início, existe uma grande tentação de sempre passar o problema pra frente para outros o tratarem. Pode ser que faça sentido, dependendo do caso, mas não até o main, por exemplo. Quem chamou um método no começo do programa pode não saber ou, pior ainda, tentar executar vários métodos diferentes e não saber qual deles teve um problema!
Não há uma regra para decidir em que momento do seu programa você vai tratar determinada exceção. Isso vai depender de em que ponto você tem condições de tomar uma decisão em relação àquele erro. Enquanto não for o momento, você provavelmente vai preferir delegar a responsabilidade para o método que te invocou.
Dei uma pesquisada na net e achei no fórum da Caelum uma pequena (e boa!) discussão sobre exceptions, segue o link:
https://blog.caelum.com.br/lidando-com-exceptions/
Isso aqui pode ajudar bastante também: https://www.caelum.com.br/apostila-java-orientacao-objetos/excecoes-e-controle-de-erros/#discusso-em-aula-catch-e-throws-em-exception