SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Java: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosJava: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosArthur Emanuel
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a pooSedu
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoVinícius de Paula
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosDaniel Brandão
 
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaExercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaLoiane Groner
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em PythonLuciano Ramalho
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Daniel Brandão
 
Sistema de Login php.pptx
Sistema de Login php.pptxSistema de Login php.pptx
Sistema de Login php.pptxJosivaldoFrana1
 
Curso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoCurso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoLuiz Junior
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Adriano Teixeira de Souza
 
Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonPriscila Mayumi
 

Was ist angesagt? (20)

Java: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosJava: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de Erros
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de Projeto
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Aula 09 - introducao oo
Aula 09 - introducao ooAula 09 - introducao oo
Aula 09 - introducao oo
 
Encapsulamento em Orientação a Objetos
Encapsulamento em Orientação a ObjetosEncapsulamento em Orientação a Objetos
Encapsulamento em Orientação a Objetos
 
POO - 14 - Vetores
POO - 14 - VetoresPOO - 14 - Vetores
POO - 14 - Vetores
 
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com JavaExercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
Exercicios Filas (Queues) - Estruturas de dados e algoritmos com Java
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Tratamento de erros
Tratamento de errosTratamento de erros
Tratamento de erros
 
POO - Aula 09 - Herança
POO - Aula 09 - HerançaPOO - Aula 09 - Herança
POO - Aula 09 - Herança
 
Sistema de Login php.pptx
Sistema de Login php.pptxSistema de Login php.pptx
Sistema de Login php.pptx
 
Linguagem Java
Linguagem JavaLinguagem Java
Linguagem Java
 
Curso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoCurso de PHP Básico ao Avançado
Curso de PHP Básico ao Avançado
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
Programação Estruturada e Orientada a Objetos
Programação Estruturada e Orientada a ObjetosProgramação Estruturada e Orientada a Objetos
Programação Estruturada e Orientada a Objetos
 
Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação Python
 

Andere mochten auch

Padrao de projeto iterator
Padrao de projeto iteratorPadrao de projeto iterator
Padrao de projeto iteratorAlvaro Oliveira
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webAlvaro Oliveira
 
Servidores de E-mail: Qmail, Sendmail e Postfix
Servidores de E-mail: Qmail, Sendmail e PostfixServidores de E-mail: Qmail, Sendmail e Postfix
Servidores de E-mail: Qmail, Sendmail e PostfixAlvaro Oliveira
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonAlvaro Oliveira
 

Andere mochten auch (6)

Processamento paralelo
Processamento paraleloProcessamento paralelo
Processamento paralelo
 
Padrao de projeto iterator
Padrao de projeto iteratorPadrao de projeto iterator
Padrao de projeto iterator
 
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações webCherrypy - um framework para desenvolvimento rápido de aplicações web
Cherrypy - um framework para desenvolvimento rápido de aplicações web
 
Qualidade de software
Qualidade de softwareQualidade de software
Qualidade de software
 
Servidores de E-mail: Qmail, Sendmail e Postfix
Servidores de E-mail: Qmail, Sendmail e PostfixServidores de E-mail: Qmail, Sendmail e Postfix
Servidores de E-mail: Qmail, Sendmail e Postfix
 
Programando para web com python - Introdução a Python
Programando para web com python - Introdução a PythonProgramando para web com python - Introdução a Python
Programando para web com python - Introdução a Python
 

Ähnlich wie Tratamento de exceções

Aula de Java 2: exceções (1999): Programa ASIT (IBPINET/UFRJ)
Aula de Java 2: exceções (1999): Programa ASIT (IBPINET/UFRJ)Aula de Java 2: exceções (1999): Programa ASIT (IBPINET/UFRJ)
Aula de Java 2: exceções (1999): Programa ASIT (IBPINET/UFRJ)Helder da Rocha
 
Certificação Java: Exceções
Certificação Java: ExceçõesCertificação Java: Exceções
Certificação Java: ExceçõesEduardo Mendes
 
Tratamento de exceções em Java
Tratamento de exceções em JavaTratamento de exceções em Java
Tratamento de exceções em JavaWilson Júnior
 
Excecoes
ExcecoesExcecoes
ExcecoesEMSNEWS
 
Paradigmas de Linguagens de Programação - Tratamento de Exceções
Paradigmas de Linguagens de Programação - Tratamento de ExceçõesParadigmas de Linguagens de Programação - Tratamento de Exceções
Paradigmas de Linguagens de Programação - Tratamento de ExceçõesAdriano Teixeira de Souza
 
[Curso Java Basico - Exceptions] Aula 47: try, catch
[Curso Java Basico - Exceptions] Aula 47: try, catch[Curso Java Basico - Exceptions] Aula 47: try, catch
[Curso Java Basico - Exceptions] Aula 47: try, catchLoiane Groner
 
Tratamento de exceção em java
Tratamento de exceção em javaTratamento de exceção em java
Tratamento de exceção em javaMarques Amaro
 

Ähnlich wie Tratamento de exceções (20)

Exceptions Em Java UFF
Exceptions Em Java UFFExceptions Em Java UFF
Exceptions Em Java UFF
 
Excecoes em Java
Excecoes em JavaExcecoes em Java
Excecoes em Java
 
Excepções JAVA
Excepções JAVAExcepções JAVA
Excepções JAVA
 
Erros, exceções e asserções
Erros, exceções e asserçõesErros, exceções e asserções
Erros, exceções e asserções
 
Erros, exceções e asserções
Erros, exceções e asserçõesErros, exceções e asserções
Erros, exceções e asserções
 
Aula de Java 2: exceções (1999): Programa ASIT (IBPINET/UFRJ)
Aula de Java 2: exceções (1999): Programa ASIT (IBPINET/UFRJ)Aula de Java 2: exceções (1999): Programa ASIT (IBPINET/UFRJ)
Aula de Java 2: exceções (1999): Programa ASIT (IBPINET/UFRJ)
 
JAVA - Tratamento de Erros
JAVA - Tratamento de ErrosJAVA - Tratamento de Erros
JAVA - Tratamento de Erros
 
Aula Tratamento de Exceções
Aula Tratamento de ExceçõesAula Tratamento de Exceções
Aula Tratamento de Exceções
 
Certificação Java: Exceções
Certificação Java: ExceçõesCertificação Java: Exceções
Certificação Java: Exceções
 
Java 13 Excecoes
Java 13 ExcecoesJava 13 Excecoes
Java 13 Excecoes
 
Tratamento de exceções em Java
Tratamento de exceções em JavaTratamento de exceções em Java
Tratamento de exceções em Java
 
Excecoes
ExcecoesExcecoes
Excecoes
 
6 excecoes
6 excecoes6 excecoes
6 excecoes
 
Tratamento de exceções em Java
Tratamento de exceções em JavaTratamento de exceções em Java
Tratamento de exceções em Java
 
Paradigmas de Linguagens de Programação - Tratamento de Exceções
Paradigmas de Linguagens de Programação - Tratamento de ExceçõesParadigmas de Linguagens de Programação - Tratamento de Exceções
Paradigmas de Linguagens de Programação - Tratamento de Exceções
 
Curso java 07 - exceções
Curso java   07 - exceçõesCurso java   07 - exceções
Curso java 07 - exceções
 
Programação Orientada por Objectos - Aula 5
Programação Orientada por Objectos - Aula 5Programação Orientada por Objectos - Aula 5
Programação Orientada por Objectos - Aula 5
 
[Curso Java Basico - Exceptions] Aula 47: try, catch
[Curso Java Basico - Exceptions] Aula 47: try, catch[Curso Java Basico - Exceptions] Aula 47: try, catch
[Curso Java Basico - Exceptions] Aula 47: try, catch
 
Tratamento de exceção em java
Tratamento de exceção em javaTratamento de exceção em java
Tratamento de exceção em java
 
Java Básico :: Exceções
Java Básico :: ExceçõesJava Básico :: Exceções
Java Básico :: Exceções
 

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
  • 5. Define um bloco de tratamento de exceção Seminário de POO I - Tratamento de Exceções 5
  • 6. Seminário de POO I - Tratamento de Exceções 6
  • 7. 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
  • 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 POO I - Tratamento de Exceções 9
  • 10. Seminário de POO I - Tratamento de Exceções 10
  • 11. Seminário de POO I - Tratamento de Exceções 11
  • 12. 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
  • 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 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
  • 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çõ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
  • 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 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
  • 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 POO I - Tratamento de Exceções 22
  • 23. Seminário de POO I - 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 POO I - Tratamento de Exceções 25
  • 26. Seminário de POO I - 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 POO I - Tratamento de Exceções 28
  • 29. OBRIGADO PELA ATENÇÃO Seminário de POO I - Tratamento de Exceções 29