Caso eu for criar uma exception qualquer, quando devo extender de Exception ou RuntimeException ? pode dar exemplos de cenários para as duas ?
Caso eu for criar uma exception qualquer, quando devo extender de Exception ou RuntimeException ? pode dar exemplos de cenários para as duas ?
RuntimeException são exceções que podem ser evitadas fazendo uma verificação antes.
Ex.:NullPointerException: se você fizer um if variavel == null, dá para evitá-la.
Um outro exemplo, digamos que você tenha um sistema bancário com um método "sacar".Nela você poderia jogar uma exceção SaldoInsuficienteException que estende RuntimeException caso o saldo seja insuficiente. Ela poderia ser evitada checando o saldo do usuário antes de invocar o sacar.
Já Exception são exceções que não tem como evitar. Ex.: SQLException: você não tem como estar 100% seguro de que não vai dar problema na conexão com o banco de dados, por isso é essencial fazer catch para tomar uma atitude.