Tratamento de
                  Exceções
                              Antonio Álvaro Oliveira da Silva
                                    Wallysson Ferreira Araruna
Instituto Federal de Educação, Ciência e Tecnologia - IFCE campus Crato
                                                   Seminário De POO I
                                            Professor: Robson Feitosa
Introdução

                                              O que é Exceções?

                                                 São eventos que ocorrem durante a execução de
                                                  um programa e quebram o fluxo normal de
                                                  execução do Programa.


                                                 Indicam a ocorrência de erros ou condições
                                                  excepcionais no programa.

Seminário de POO I - Tratamento de Exceções                                                    2
Algumas Exceções
     Esgotamento de Memória;
     Índice de Array Fora dos Limites;
     Estouro Aritmético;
     Erros de Manipulação de Arquivos;
     Erros na Comunicação com Banco de Dados;
     Divisão por Zero;
     Parâmetros de Métodos Inválidos etc.




Seminário de POO I - Tratamento de Exceções      3
Exemplo Sem
Tratamento de Exceções
     Define um bloco de tratamento de exceção




Seminário de POO I - Tratamento de Exceções      5
Seminário de POO I - Tratamento de Exceções   6
Modelo de Tratamento
Palavras Reservadas em Java
 try, catch e finally
            Define um bloco de tratamento de exceção.
 throws
        Declara   que um método pode lançar uma exceção ou mais
            exceções
 throw
        Lança              uma exceção



Seminário de POO I - Tratamento de Exceções                        7
 Bloco try / catch


                  try {
                                              ...
                             } catch (Excecao1 e1) {
                                              ...
                             } catch (Excecao2 e2) {
                                              ...
                             }



Seminário de POO I - Tratamento de Exceções            8
Seminário de POO I - Tratamento de Exceções   9
Seminário de POO I - Tratamento de Exceções   10
Seminário de POO I - Tratamento de Exceções   11
Quando Utilizar Tratamento de Exceções


                             E utilizado para processar erros síncronos.
                             Não é projetado para processar problemas
                                associados com eventos assíncronos.
                               Para tornar um programa mais robusto e
                                          tolerantes a falhas.




Seminário de POO I - Tratamento de Exceções                                 12
Hierarquia de Exceção




 Seminário de POO I - Tratamento de Exceções   13
     ArrayIndexOutOfBoundsException— é feita uma tentativa de
      acessar um elemento depois do final de um array.

     ClassCastException— ocorre uma tentativa de fazer uma coerção
      em um objeto que não tem um relacionamento é um com o tipo
      especificado no operador de coerção.

      NullPointerException— quando uma referência null é utilizada
      onde um objeto é esperado.

     ArithmeticException— pode surgir a partir de diferentes
      problemas na aritmética.

     InputMismatchException- ocorre quando o método Scanner
      nextInt recebe uma string que não representa um inteiro válido.

Seminário de POO I - Tratamento de Exceções                             14
Exceções Verificadas versus Não
Verificadas
     O compilador Java impõe um Requisito “capture ou declare” ás
      exceções verificadas;
     O tipo da exceção determina se a exceção é verificada ou não;
     Todas as subclasses da classe RuntimeException são exceções não
      verificadas;
     Todas as classes que herdam da classe Exception menos a
      RuntimeException são exceções verificadas;
     As classes que herdam da classe Error são consideradas não
      verificadas.


Seminário de POO I - Tratamento de Exceções                             15
Bloco finally


     É opcional, e é
      colocado após do
      ultimo      bloco
      catch.




Seminário de POO I - Tratamento de Exceções   16
Lançamento de Exceções com a
Instrução throw

                                   E
                                  utilizada para indicar que
                                  uma exceção foi lançada.
                              Assim exceções lançadas indica
                               para os aplicativos clientes que
                                       ocorreu um erro.



Seminário de POO I - Tratamento de Exceções                       17
Relançando Exceções


                             As exceções são relançadas quando um
                              bloco catch,ao receber uma
                              exceção,decide que não pode processar
                              essa exceção ou que só pode processá-la
                              parcialmente.




Seminário de POO I - Tratamento de Exceções                             18
Desempilhamento de Pilha


                     Quando uma exceção é lançada mas não
                      capturada em um escopo em particular, a
                      pilha    de   chamada     de    método    é
                      “desempilhada” e é feita uma tentativa de
                      capturar (catch) a exceção no próximo bloco
                      try externo.




Seminário de POO I - Tratamento de Exceções                         19
O Tipo que está sendo
                                                        capturado
                                                 RuntimeException não
                                                   corresponde ao tipo
                                                 lançado,pois ele não é
                                              superclasse e sim subclasse
                                                  da classe Exception.




Seminário de POO I - Tratamento de Exceções                          20
printStackTrace,getStackTrace e
getMessage
     As exceções derivam da classe Throwable
     printStackTrace - Envia para o fluxo de erro padrão o rastreamento da
      pilha.É útil no processo de teste e depuração.
     getStackTrace - Recupera as informações sobre o rastreamento da pilha
      que podem ser impressos por printStackTrace.
     getMessage – Retorna a string descritiva armazenada em uma exceção.


     OBS: Nunca ignore uma exceção que capturou.




Seminário de POO I - Tratamento de Exceções                                   21
Seminário de POO I - Tratamento de Exceções   22
Seminário de POO I - Tratamento de Exceções   23
Exceções Encadeadas

                 Permitem a um objeto exceção manter
                  informações de rastreamento de pilha completas
                  a partir da exceção original.
                 Utiliza o construtor Exception com dois
                  argumentos, o segundo argumento representa a
                  exceção que era a causa original do problema.




Seminário de POO I - Tratamento de Exceções                        24
Seminário de POO I - Tratamento de Exceções   25
Seminário de POO I - Tratamento de Exceções   26
Referencias

   Deitel,Paul;Deitel,Harvey. Java Como Programar,8ª edição,editora Pearson
    Prentice Hall 2010.




                                                                               27
                         Seminário de POO I - Tratamento de Exceções
Seminário de POO I - Tratamento de Exceções   28
OBRIGADO PELA ATENÇÃO


Seminário de POO I - Tratamento de Exceções                   29

Tratamento de exceções

  • 1.
    Tratamento de Exceções Antonio Álvaro Oliveira da Silva Wallysson Ferreira Araruna Instituto Federal de Educação, Ciência e Tecnologia - IFCE campus Crato Seminário De POO I Professor: Robson Feitosa
  • 2.
    Introdução O que é Exceções?  São eventos que ocorrem durante a execução de um programa e quebram o fluxo normal de execução do Programa.  Indicam a ocorrência de erros ou condições excepcionais no programa. Seminário de POO I - Tratamento de Exceções 2
  • 3.
    Algumas Exceções  Esgotamento de Memória;  Índice de Array Fora dos Limites;  Estouro Aritmético;  Erros de Manipulação de Arquivos;  Erros na Comunicação com Banco de Dados;  Divisão por Zero;  Parâmetros de Métodos Inválidos etc. Seminário de POO I - Tratamento de Exceções 3
  • 4.
  • 5.
    Define um bloco de tratamento de exceção Seminário de POO I - Tratamento de Exceções 5
  • 6.
    Seminário de POOI - Tratamento de Exceções 6
  • 7.
    Modelo de Tratamento PalavrasReservadas em Java  try, catch e finally  Define um bloco de tratamento de exceção.  throws  Declara que um método pode lançar uma exceção ou mais exceções  throw  Lança uma exceção Seminário de POO I - Tratamento de Exceções 7
  • 8.
     Bloco try/ catch try { ... } catch (Excecao1 e1) { ... } catch (Excecao2 e2) { ... } Seminário de POO I - Tratamento de Exceções 8
  • 9.
    Seminário de POOI - Tratamento de Exceções 9
  • 10.
    Seminário de POOI - Tratamento de Exceções 10
  • 11.
    Seminário de POOI - Tratamento de Exceções 11
  • 12.
    Quando Utilizar Tratamentode Exceções  E utilizado para processar erros síncronos.  Não é projetado para processar problemas associados com eventos assíncronos.  Para tornar um programa mais robusto e tolerantes a falhas. Seminário de POO I - Tratamento de Exceções 12
  • 13.
    Hierarquia de Exceção Seminário de POO I - Tratamento de Exceções 13
  • 14.
    ArrayIndexOutOfBoundsException— é feita uma tentativa de acessar um elemento depois do final de um array.  ClassCastException— ocorre uma tentativa de fazer uma coerção em um objeto que não tem um relacionamento é um com o tipo especificado no operador de coerção.  NullPointerException— quando uma referência null é utilizada onde um objeto é esperado.  ArithmeticException— pode surgir a partir de diferentes problemas na aritmética.  InputMismatchException- ocorre quando o método Scanner nextInt recebe uma string que não representa um inteiro válido. Seminário de POO I - Tratamento de Exceções 14
  • 15.
    Exceções Verificadas versusNão Verificadas  O compilador Java impõe um Requisito “capture ou declare” ás exceções verificadas;  O tipo da exceção determina se a exceção é verificada ou não;  Todas as subclasses da classe RuntimeException são exceções não verificadas;  Todas as classes que herdam da classe Exception menos a RuntimeException são exceções verificadas;  As classes que herdam da classe Error são consideradas não verificadas. Seminário de POO I - Tratamento de Exceções 15
  • 16.
    Bloco finally  É opcional, e é colocado após do ultimo bloco catch. Seminário de POO I - Tratamento de Exceções 16
  • 17.
    Lançamento de Exceçõescom a Instrução throw E utilizada para indicar que uma exceção foi lançada.  Assim exceções lançadas indica para os aplicativos clientes que ocorreu um erro. Seminário de POO I - Tratamento de Exceções 17
  • 18.
    Relançando Exceções  As exceções são relançadas quando um bloco catch,ao receber uma exceção,decide que não pode processar essa exceção ou que só pode processá-la parcialmente. Seminário de POO I - Tratamento de Exceções 18
  • 19.
    Desempilhamento de Pilha  Quando uma exceção é lançada mas não capturada em um escopo em particular, a pilha de chamada de método é “desempilhada” e é feita uma tentativa de capturar (catch) a exceção no próximo bloco try externo. Seminário de POO I - Tratamento de Exceções 19
  • 20.
    O Tipo queestá sendo capturado RuntimeException não corresponde ao tipo lançado,pois ele não é superclasse e sim subclasse da classe Exception. Seminário de POO I - Tratamento de Exceções 20
  • 21.
    printStackTrace,getStackTrace e getMessage  As exceções derivam da classe Throwable  printStackTrace - Envia para o fluxo de erro padrão o rastreamento da pilha.É útil no processo de teste e depuração.  getStackTrace - Recupera as informações sobre o rastreamento da pilha que podem ser impressos por printStackTrace.  getMessage – Retorna a string descritiva armazenada em uma exceção.  OBS: Nunca ignore uma exceção que capturou. Seminário de POO I - Tratamento de Exceções 21
  • 22.
    Seminário de POOI - Tratamento de Exceções 22
  • 23.
    Seminário de POOI - Tratamento de Exceções 23
  • 24.
    Exceções Encadeadas  Permitem a um objeto exceção manter informações de rastreamento de pilha completas a partir da exceção original.  Utiliza o construtor Exception com dois argumentos, o segundo argumento representa a exceção que era a causa original do problema. Seminário de POO I - Tratamento de Exceções 24
  • 25.
    Seminário de POOI - Tratamento de Exceções 25
  • 26.
    Seminário de POOI - Tratamento de Exceções 26
  • 27.
    Referencias  Deitel,Paul;Deitel,Harvey. Java Como Programar,8ª edição,editora Pearson Prentice Hall 2010. 27 Seminário de POO I - Tratamento de Exceções
  • 28.
    Seminário de POOI - Tratamento de Exceções 28
  • 29.
    OBRIGADO PELA ATENÇÃO Semináriode POO I - Tratamento de Exceções 29