java 13 excecoes
TRANSCRIPT
- 1. Excees
-
- Regis Pires Magalhes
-
-
- [email_address]
2. Problema 1
- Como evitar que uma data invlida seja armazenada no atributo data?
3. Solues
- Desconsiderar a operao caso uma data invlida seja identificada
-
- Ficamos na incerteza do sucesso ou no da operao.
- Mostrar uma mensagem de erro
-
- A classe fica atrelada interface com o usurio.
- Retornar um cdigo de erro
-
- Os clientes precisam fazer testes exatamente aps a chamada do mtodo. Alm disso, para cada chamada, um novo teste precisa ser realizado.
-
- Retornar um valor especial de erro quando o mtodo j retorna algum valor significativo deselegante e pode confundir quem est usando o mtodo.
4. Problema 2 // ... Conta minhaConta =newConta(); minhaConta.deposita(100); minhaConta.setLimite(100); minhaConta.saca(1000); //o saldo -900? 100? 0? // A chamada ao mtodo saca funcionou? 5. Solues public booleansaca( doublequantidade) { if(quantidade >this .saldo +this .limite) {System.out.println( "Saque fora do limite!" ); return false ; }else{ this .saldo =this .saldo quantidade; return true ; } }
- Mostrar mensagem de erro
- Retornar cdigo de erro
6. Problema 2
-
- Como sinalizar quando o usurio passou um valor negativo?
-
- Uma soluo alterar o retorno de boolean para int, e retornar o cdigo do erro que ocorreu.
-
-
- Isto considerado uma m prtica (uso de magic numbers).
-
-
- Desvantagens:
-
-
- Perde-se o retorno do mtodo;
-
-
-
- O valor retornado mgico (s legvel perante extensa documentao)
-
-
-
- No obriga o programador a tratar esse retorno, e no caso de esquecer isso seu programa continuar rodando.
-
7. Excees
-
- Uma exceo representa uma situao que normalmente no ocorre e representa algo de estranho ou errado no sistema.
-
- Indicam algum tipo de condio excepcional (como um erro) ocorrido ao programa.
-
-
- Exemplos de situaes que geram excees:
-
-
-
-
- ndice de array fora dos limites
-
-
-
-
-
- Overflow numrico
-
-
-
-
-
- Diviso por zero
-
-
-
-
-
- Estouro de memria
-
-
8. Por que usar excees?
-
- Separam a parte de lgica do sistema da parte de tratamento de erros.
-
-
- Evitam a criao de um cdigo especfico para cada situao em que um tipo de erro ocorre.
-
-
-
- Concentram o tratamento de erros em partes especficas do cdigo, facilitando sua legibilidade e manuteno.
-
9. Excees
-
- Uma exceo lanada interrompe o fluxo normal do programa.
-
-
- Se o mtodo onde ela ocorrer no a capturar, ela ser propagada para o mtodo que chamar esse mtodo e assim por diante.
-
-
-
- Se ningum capturar a exceo, ela ir causar o trmino da aplicao.
-
-
-
- Se em algum lugar ela for capturada, o controle pode ser recuperado.
-
10. Pilha de Execuo public classTesteErro { public static voidmain(String[] args) { System. out .println( "inicio do main" ); metodo1 (); System. out .println( "fim do main" ); } public static voidmetodo1() { System. out .println( "inicio do metodo1" ); metodo2 (); System. out .println( "fim do metodo1" ); } public static voidmetodo2() { System. out .println( "inicio do metodo2" ); int [] array =new int [10]; for( inti = 0; i