SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

Mais procurados

Java exception handling ppt
Java exception handling pptJava exception handling ppt
Java exception handling pptJavabynataraJ
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controleProfessor Samuel Ribeiro
 
Polimorfismo em java
Polimorfismo em javaPolimorfismo em java
Polimorfismo em javaManoel Afonso
 
Aula 5 encapsulamento, associação, polimorfismo, interfaces
Aula 5   encapsulamento, associação, polimorfismo, interfacesAula 5   encapsulamento, associação, polimorfismo, interfaces
Aula 5 encapsulamento, associação, polimorfismo, interfacesRafael Pinheiro
 
Aula sobre multithreading
Aula sobre multithreadingAula sobre multithreading
Aula sobre multithreadingBianca Dantas
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhanyKaren Costa
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
Diagrama de Perfil e Estruturas Compostas
Diagrama de Perfil e Estruturas CompostasDiagrama de Perfil e Estruturas Compostas
Diagrama de Perfil e Estruturas CompostasOctviodeOliveiraJorg
 
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...André Constantino da Silva
 
Aula 13 - Algoritmos de Escalonamento
Aula 13 - Algoritmos de Escalonamento Aula 13 - Algoritmos de Escalonamento
Aula 13 - Algoritmos de Escalonamento camila_seixas
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha casoEder Samaniego
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaDaniel Brandão
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeRegis Magalhães
 

Mais procurados (20)

Java exception handling ppt
Java exception handling pptJava exception handling ppt
Java exception handling ppt
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controle
 
Polimorfismo em java
Polimorfismo em javaPolimorfismo em java
Polimorfismo em java
 
Aula 5 encapsulamento, associação, polimorfismo, interfaces
Aula 5   encapsulamento, associação, polimorfismo, interfacesAula 5   encapsulamento, associação, polimorfismo, interfaces
Aula 5 encapsulamento, associação, polimorfismo, interfaces
 
Aula sobre multithreading
Aula sobre multithreadingAula sobre multithreading
Aula sobre multithreading
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhany
 
SO-04 Escalonamento de Processos
SO-04 Escalonamento de ProcessosSO-04 Escalonamento de Processos
SO-04 Escalonamento de Processos
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Diagrama de Perfil e Estruturas Compostas
Diagrama de Perfil e Estruturas CompostasDiagrama de Perfil e Estruturas Compostas
Diagrama de Perfil e Estruturas Compostas
 
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
 
Exercicios java básico
Exercicios java básicoExercicios java básico
Exercicios java básico
 
Aula 13 - Algoritmos de Escalonamento
Aula 13 - Algoritmos de Escalonamento Aula 13 - Algoritmos de Escalonamento
Aula 13 - Algoritmos de Escalonamento
 
Aula 02 - Escolha caso
Aula 02 - Escolha casoAula 02 - Escolha caso
Aula 02 - Escolha caso
 
Programação Orientação a Objetos - Herança
Programação Orientação a Objetos - HerançaProgramação Orientação a Objetos - Herança
Programação Orientação a Objetos - Herança
 
POO - 11 - Prática de Herança
POO - 11 - Prática de HerançaPOO - 11 - Prática de Herança
POO - 11 - Prática de Herança
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 Recursividade
 
Aula Tratamento de Exceções
Aula Tratamento de ExceçõesAula Tratamento de Exceções
Aula Tratamento de Exceções
 
Java 13 Excecoes
Java 13 ExcecoesJava 13 Excecoes
Java 13 Excecoes
 
Les collections en Java
Les collections en JavaLes collections en Java
Les collections en Java
 

Destaque

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
 

Destaque (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
 

Semelhante a 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
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceçõesFAFICA
 
Java: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosJava: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosArthur Emanuel
 

Semelhante a 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
 
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
 
Certificação Java: Exceções
Certificação Java: ExceçõesCertificação Java: Exceções
Certificação Java: Exceções
 
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
Tratamento de exceçõesTratamento de exceções
Tratamento de exceções
 
Java: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosJava: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de Erros
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 

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