O tratamento de exceções que acabamos de fazer fazemos não distingue entre os diversos tipos de erros que ocorreram na inclusão da transação. Você pode sofisticar o tratamento de exceções aninhando cláusulas catch, que captura exceções de tipos distintos. Siga os passos abaixo:
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)outra ocorre quando um campo da Data ou do Valor é invalido:
java.lang.IllegalArgumentException: year out of range. at java.util.Date.Vamos tratar separadamente destas duas exeções, implementando o código abaixo:(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)
} 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) {por:
} else if (e.target == debite) { try { adicionaTransacaoDebito(); } catch (IllegalArgumentException exception) { System.out.println("Dado Invalido "+exception); } catch (NullPointerException exception) { System.out.println("Conta Bancaria Nao Selecionada"); } catch (Exception exception) { System.out.println("Erro Incluindo Transacao de Debito "+ exception); } } else if (e.target == cancela) {