Você já deve ter observado que é frequente a ocorrência de erros no BancoApplet, principalmente quando queremos incluir uma conta e não temos um cliente selecionado na janela de clientes, ou quando queremos incluir uma transação e não temos uma conta selecionada na janela de conta corrente. Usando tratamento de exceções vamos cuidar mais adequadamente de alguns destes erros. Siga os passos abaixo:
Provoque os seguintes erros e veja a ocorrência de exceções:
java.lang.NullPointerException at Banco.adicionaTransacaoCredito(Banco.java:38) at BancoApplet.adicionaTransacaoCredito(BancoApplet.java:143) at JanelaTransacao.adicionaTransacaoCredito(JanelaTransacao.java:101) at JanelaTransacao.handleEvent(JanelaTransacao.java:69) at java.awt.Component.postEvent(Component.java:838) at java.awt.Component.postEvent(Component.java:845) at sun.awt.motif.MButtonPeer.action(MButtonPeer.java:39) at java.lang.Thread.run(Thread.java:289)ou quando o ano do campo Data é invalido:
java.lang.IllegalArgumentException: year out of range. at java.util.Date.Ao final de cada linha de mensagem tem o número da linha de código onde a exceção foi levantada. De cima para baixo, esta exceção foi sendo passada sem tratamento. O código que voce escreverá abaixo esta exceção e não deixa que ela acabe chegando no sistema de runtime.(Date.java:158) at java.util.Date. (Date.java:114) at JanelaTransacao.adicionaTransacaoCredito(JanelaTransacao.java:95) at JanelaTransacao.handleEvent(JanelaTransacao.java:69) at java.awt.Component.postEvent(Component.java:838) at java.awt.Component.postEvent(Component.java:845) at sun.awt.motif.MButtonPeer.action(MButtonPeer.java:39) at java.lang.Thread.run(Thread.java:289)
Vamos tratar das exeções que ocorrem quando adicionamos uma transação de débito.
} else if (e.target == debite) { adicionaTransacaoDebito(); } else if (e.target == cancela) {
por:
} else if (e.target == debite) { try { adicionaTransacaoDebito(); } catch (Exception exception) { System.out.println("Erro Incluindo Transacao de Debito"); System.out.println("Inclusao Abortada"); } } else if (e.target == cancela) {