A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Java: Tratamento de Exceções Alcides Calsavara.

Apresentações semelhantes


Apresentação em tema: "1 Java: Tratamento de Exceções Alcides Calsavara."— Transcrição da apresentação:

1 1 Java: Tratamento de Exceções Alcides Calsavara

2 2 Definição u Exceções são acontencimentos fora do comportamento normal ou desejado para um programa. O gerenciamento de exeções permite o controle sobre erros e possivelmente uma solução de contorno. u Exemplos: entrada em formato inválido, arquivo corrompido, conexão de rede não disponível, índice inválido para vetor,...

3 3 Exemplo de código frágil class TestNullP {static String s = null; public static void main(String args[ ]) { char c1 = s.charAt(2); // java.lang.NullPointerException (programa pára) s = new String("Curitiba"); char c2 = s.charAt(2); // c2 = 'r' char c3 = s.charAt(8); // java.lang.StringIndexOutOfBoundsException (programa pára) } } // fim

4 4 Exemplo modificado com ifs class TestNullP {static String s = null; public static void main(String args[ ]) { if (s != null && s.length( ) > 2) char c1 = s.charAt(2); s = new String("Curitiba"); if (s != null && s.length( ) > 2) char c2 = s.charAt(2); // c2 = 'r' if (s != null && s.length( ) > 8) char c3 = s.charAt(8); } } // fim

5 5 Exemplo modificado com tratamento de exceções class TestNullP {static String s = null; public static void main(String args[]) { try { char c1 = s.charAt(2); } catch (Exception e) { System.out.println("Exceção " + e); // Exceção: java.lang.NullPointerException }// continua

6 6 Exemplo modificado com tratamento de exceções (cont.) s = new String("Curitiba"); try { char c2 = s.charAt(2); // c2 = 'r' } catch (Exception e) { System.out.println("Exceção " + e); } // continua

7 7 Exemplo modificado com tratamento de exceções (cont.) try { char c3 = s.charAt(8); } catch (Exception e) { System.out.println("Exceção " + e); // Exceção: java.lang.StringIndexOutOfBoundsException } } // fim

8 8 Hierarquia de exceções...

9 9 Tratando exceções não relacionadas por herança class TestNullP {static String s = null; public static void main(String args[ ]) { try { char c1 = s.charAt(2); } catch (Exception e) {System.out.println("Exceção " + e); } catch (Error e) {System.out.println("Erro " + e); } } // fim

10 10 A cláusula finally class TestNullP {static String s = null; public static void main(String args[ ]) { try { char c1 = s.charAt(2); } catch (Exception e) { System.out.println("Exceção " + e); } catch (Error e) { System.out.println("Erro " + e); } finally { System.out.println("Adios, amigos"); } // executado sempre }

11 11 A cláusula throws class TestNullP {static String s = null; static void work( ) throws Throwable { try { char c1 = s.charAt(2); } catch (Exception e) { System.out.println("Exceção"); throw(e); } catch (Error e) { System.out.println("Erro"); throw(e); } finally { System.out.println("Adios, amigos");} }// continua

12 12 A cláusula throws (cont.) public static void main(String args[ ]) { try { work( ); } catch(Throwable t) { System.out.println("Erro ou Exceção " + t); } finally { System.out.println("Adios, amigos II");} } } // fim

13 13 Definindo suas próprias exceções class ProblemaEmWork extends Exception { public ProblemaEmWork( ) { } public ProblemaEmWork(String msg) { super(msg); } } // continua

14 14 Definindo suas próprias exceções (cont.) class TestNullP {static String s = null; static void work( ) throws ProblemaEmWork { try { char c1 = s.charAt(2); } catch (Exception e) { throw(new ProblemaEmWork("Exceção em work " + e)); } catch (Error e) { throw(new ProblemaEmWork("Erro em work " + e)); } finally { System.out.println("Adios, amigos");} }// continua

15 15 Definindo suas próprias exceções (cont.) public static void main(String args[ ]) { try { work(); } catch(ProblemaEmWork p) { System.out.println(p); } finally { System.out.println("Adios, amigos II");} } } // fim


Carregar ppt "1 Java: Tratamento de Exceções Alcides Calsavara."

Apresentações semelhantes


Anúncios Google