Boa tarde galera! Estou no capítulo 11 da apostila FJ11, e algumas dúvidas surgiram:
1. Exception é uma mensagem que o sistema retorna caso algo dê errado? Essa mensagem deve ser tratada (checked) ou não (unchecked)? Caso não seja tratada (unchecked) os métodos retornarão a excessão até onde não der mais (talvez no método main?) E encerrará o sistema todo ali?
2. Todos os métodos que eu criar devem lançar excessões caso algo de errado aconteça?
3. A criação de uma classe exception unchecked se deve pelo extends RuntimeException e a checked pelo extends Exception?
public class SaldoInsuficienteException extends RuntimeException {
public SaldoInsuficienteException(String mensagem) {
super(mensagem);
}
}
Esse super é um método herdado da onde? Da classe exception?
4.
"Em sistemas de verdade, é muito comum que quem saiba tratar o erro é aquele que chamou o método e não a própria classe! Portanto, nada mais natural do que a classe sinalizar que um erro ocorreu."
Caso use uma exception checked, não teríamos a quebra de encapsulamento, já que o classe que irá usar o método deverá saber qual como tratar o erro de outra classe?
5. Como eu descubro todas as excessões que herdaram de RuntimeExceptions pra evitar de ficar criando classes de excessões?


