A vantagem eh que vc tem exceptions com nomes que facam sentido. Ao inves de vc lancar uma RuntimeException para login invalido, usuario nao encontrato e erro ao gravar a mensagem no banco, vc tem uma InvalidLoginException, UserNotFoundException e DbWriteException. Eh bem mais facil de identificar o problema
Agora, nao vai ser mto interessante vc trocar os ifs() por um monte de try-catch… o teu codigo vai ficar bem complexo de mexer. Cuidado para nao sair na porra loca
try {
contaCorrente.debitar( valor );
} catch( SaldoInsuficienteException e ) {
System.out.println("Sem saldo suficiente!");
}
É melhor do que o método retornar false ou qualquer outra coisa, já que o fluxo normal seria debitar e o saldo insuficiente é uma exceção ao fluxo normal.
Cara, eh só um comentário inútil, mas estou me lembrando agora de um livro que li em 2002-2003, azulzinho e cujo título em inglês era se não me engano “Java for Idiots”, era muito bom achava a didática muito boa, o mais legal eh que os textos eram bem descontraídos, era um livro engraçado!!