SlideShare une entreprise Scribd logo
1  sur  36
Tratamento de Erros Gerenciamento de erros com Exceções em Java
O que é uma exceção ? ,[object Object],[object Object]
O que ocasiona uma exceção ?  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Quando ocorre um erro ... ,[object Object],[object Object]
uma exceção é lançada ! ,[object Object],[object Object]
Quando uma exceção é lançada... ,[object Object],[object Object],[object Object]
busca-se um  exception handler ,[object Object],[object Object],[object Object]
Se ele não é encontrado... ,[object Object]
Principal vantagem da manipulação de erros por exceções ,[object Object],lerArquivo()  { abrir o arquivo; determinar seu tamanho; alocar memória suficiente; ler o arquivo para a memória fechar o arquivo; }
Tratamento “complicado” de erros tipoErro leArquivo() { tipoErro códigoErro = 0; abrir arquivo; se (arquivo abriu) então { determinar tamanho do arquivo; se (conseguiu obter tamanho do arquivo) então { alocar memória suficiente; se (conseguiu memória suficiente) então { ler o arquivo para memória; se (leitura falhou) então códigoErro = -1; }  senão códigoErro = -2 } senão  códigoErro = -3 fechar o arquivo; se (arquivo não fechou) códigoErro = -4  } senão códigoErro = -5 retorne códigoErro; }
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Tratamento “fácil” de erros
Se bem que... ,[object Object],[object Object]
Terminologia das exceções: ,[object Object],[object Object],[object Object],[object Object],[object Object]
Palavras chave Java para o tratamento de exceções: ,[object Object],[object Object],[object Object],[object Object],[object Object]
Formato geral do código para lançar e tratar exceções try  { //código que pode gerar uma exceção }  catch (Exception e) //captura a exceção { //código para tratar a exceção } finally { } void método1()  throws  IOException { //código que pode gerar uma IOException } void método2()  throws  IOException { //testa condição de exceção if (excep)then  throw  (new IOException()); } Captura  da Exceção Passagem da  Exceção pelo  Método Lançamento de Exceções
Exemplo sem tratamento de exceção ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Exemplo com tratamento de exceção ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Mais um exemplo: class Conta { public static void main (String args[]) { int divisor = 0; int numero = 30; int indice = 100; int c[] = {1}; try { int resultado = numero / divisor;  c[indice] = resultado; } catch (ArithmeticException a) { System.out.println("Divisão por zero"); divisor = 1; }  catch (IndexOutOfBoundsException x) { System.out.println("Estourou o índice do array"); indice = 0; } } }
Variações sobre o mesmo exemplo: class Conta { public static void main (String args[]) { int divisor = 0; int numero = 30; int indice = 100; int c[] = {1}; try { int resultado = numero / divisor;  try { c[indice] = resultado; } catch (IndexOutOfBoundsException x) { System.out.println("Estourou o índice do array"); indice = 0; } } catch (ArithmeticException a) { System.out.println("Divisão por zero"); divisor = 1; }  } }
Um exemplo diferente... import java.io.*; public class LeArquivo { private FileReader entrada; public LeArquivo(String nomeArquivo)  { entrada = new FileReader(nomeArquivo); } public String pegaPalavra()  { int c; StringBuffer buf = new StringBuffer(); do { c = entrada.read(); if (Character.isWhitespace((char)c)) return buf.toString(); else buf.append((char)c); } while (c != -1); return buf.toString(); } }
...que não compila ! C:gt;javac LeArquivo.java LeArquivo.java:7: Exception java.io.FileNotFoundException must  be caught, or it must be declared in the throws clause of  this constructor. entrada = new FileReader(nomeArquivo); ^ LeArquivo.java:15: Exception java.io.IOException must be  caught, or it must be declared in the throws clause of  this method. c = entrada.read(); ^ 2 errors Pois o compilador sabe que, em ambos os métodos, estão sendo utilizadas instruções que podem ocasionar erro e,  portanto, que lançam exceções. Só que estas exceções  não estão sendo tratadas
Possíveis soluções:  ,[object Object],[object Object],[object Object]
Agora o exemplo compila ! import java.io.*; public class LeArquivoOK { private FileReader entrada; public LeArquivoOK(String nomeArquivo)  throws FileNotFoundException { entrada = new FileReader(nomeArquivo); } public String pegaPalavra()  throws IOException { int c; StringBuffer buf = new StringBuffer(); do { c = entrada.read(); if (Character.isWhitespace((char)c)) return buf.toString(); else buf.append((char)c); } while (c != -1); return buf.toString(); } }
Throws ,[object Object],[object Object]
E quem usa tem que fazer o seguinte... import java.io.*; import LeArquivoOK; public class TesteLeArquivosOK { public static void main (String args[]) { LeArquivoOK l; try { l = new LeArquivoOK(”123DeOliveira4.txt"); } catch (FileNotFoundException f) { System.out.println("Deu pau ! " + f.getMessage()); f.printStackTrace(); } System.out.println("Abriu"); } }
Ou algo um pouco mais sofisticado... import LeArquivoOK; import java.io.*; public class TesteLeArquivosOK { private LeArquivoOK l; private String nomeArq = "12345678.txt";  private boolean abriu = false;  public void tentaAbrir() { while (!abriu) { try { l = new LeArquivoOK(nomeArq); abriu = true; } catch (FileNotFoundException f) { System.out.println("Deu pau ! " + f.getMessage()+""); f.printStackTrace(); nomeArq = "c:autoexec.bat"; } } // while System.out.println("Abriu o arquivo " + nomeArq); } public static void main (String args[]) { TesteLeArquivosOK t = new TesteLeArquivosOK();  t.tentaAbrir(); }  }
Favor tentar fazer o seguinte: ,[object Object]
throw ,[object Object],[object Object],[object Object]
Exemplo do uso de  throw public Object pop() throws EmptyStackException  { Object obj; if (size == 0) throw new EmptyStackException(); obj = objectAt(size - 1); setObjectAt(size - 1, null); size--; return obj; }
Cláusula  finally ,[object Object],try  { //código que pode gerar uma exceção }  catch (Exception e) //captura a exceção { //código para tratar a exceção } finally { } Captura  da Exceção ,[object Object]
Cláusula  finally ,[object Object],[object Object]
Um exemplo do uso de  finally public void exemploBobo()  { PrintWriter saida = null; try  { System.out.println(&quot;Entrando no bloco try&quot;); saida = new PrintWriter(new FileWriter(&quot;ArqSaida.txt&quot;)); for (int i = 0; i < tamanho; i++) saida.println(&quot;Valor em: &quot; + i + &quot; = &quot; + vetor.elementAt(i)); }  catch (ArrayIndexOutOfBoundsException e)  { System.err.println(&quot;Capturada ArrayIndexOutOfBoundsException: &quot; +e.getMessage()); }  catch (IOException e)  { System.err.println(&quot;Capturada IOException: &quot; + e.getMessage()); }  finally  { if (saida != null)  { System.out.println(&quot;Fechando o PrintWriter&quot;); saida.close(); }  else  { System.out.println(&quot;O PrintWriter não chegou a abrir&quot;); } } }
Para encerrar: espiada em algumas classes de exceção (1/4) java.lang.Object | +--java.lang.Throwable | +--java.lang.Exception | +--AclNotFoundException  +--ActivationException,  +--AlreadyBoundException,  +--ApplicationException,  +--AWTException, +--BadLocationException,  +--ClassNotFoundException,  +--CloneNotSupportedException,  +--DataFormatException, +--ExpandVetoException,  +--GeneralSecurityException,  +--IllegalAccessException,  +--InstantiationException,  +--InterruptedException,
Para encerrar: espiada em algumas classes de exceção  (2/4) +--IntrospectionException,  +--InvocationTargetException,  +--IOException |  | |  +--ChangedCharSetException,  |  +--CharConversionException,  |  +--EOFException,  |  +--FileNotFoundException,  |  +--InterruptedIOException, |  +--MalformedURLException,  |  +--ObjectStreamException,  |  +--ProtocolException,  |  +--RemoteException,  |  +--SocketException, |  +--SyncFailedException,  |  +--UnknownHostException,  |  +--UnknownServiceException,  |  +--UnsupportedEncodingException, |  +--UTFDataFormatException,  |  +--ZipException
Para encerrar: espiada em algumas classes de exceção  (3/4) +--LastOwnerException, +--NoninvertibleTransformException,  +--NoSuchFieldException,  +--NoSuchMethodException,  +--NotBoundException, +--NotOwnerException,  +--ParseException,  +--PrinterException,  +--PrivilegedActionException,  +--PropertyVetoException, +--RemarshalException,  +--RuntimeException,  |  | |  +--ArithmeticException,  |  +--ArrayStoreException,  |  +--CannotRedoException,  |  +--CannotUndoException,  |  +--ClassCastException, |  +--CMMException,
Para encerrar: espiada em algumas classes de exceção  (4/4) |  +--ConcurrentModificationException,  |  +--EmptyStackException,  |  +--IllegalArgumentException, |  +--IllegalMonitorStateException,  |  +--IllegalPathStateException,  |  +--IllegalStateException,  |  +--ImagingOpException, |  +--IndexOutOfBoundsException,  |  +--MissingResourceException,  |  +--NegativeArraySizeException,  |  +--NoSuchElementException, |  +--NullPointerException,  |  +--ProfileDataException,  |  +--ProviderException,  |  +--RasterFormatException,  |  +--SecurityException, |  +--SystemException,  |  +--UnsupportedOperationException  +--ServerNotActiveException,  +--SQLException,  +--TooManyListenersException, +--UnsupportedFlavorException,  +--UnsupportedLookAndFeelException,

Contenu connexe

Tendances

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
 
Teste unitário
Teste unitárioTeste unitário
Teste unitáriodist_bp
 
UnP Eng. Software - Aula 28
UnP Eng. Software - Aula 28UnP Eng. Software - Aula 28
UnP Eng. Software - Aula 28Hélio Medeiros
 
[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
 
[Curso Java Basico - Exceptions] Aula 49: finally
[Curso Java Basico - Exceptions] Aula 49: finally[Curso Java Basico - Exceptions] Aula 49: finally
[Curso Java Basico - Exceptions] Aula 49: finallyLoiane Groner
 
Testes de unidade e TDD SoLiSC 2011
Testes de unidade e TDD SoLiSC 2011Testes de unidade e TDD SoLiSC 2011
Testes de unidade e TDD SoLiSC 2011Luís Cobucci
 
Testes de Unidade com JUnit
Testes de Unidade com JUnitTestes de Unidade com JUnit
Testes de Unidade com JUnitelliando dias
 
[Curso Java Basico - Exceptions] Aula 50: stacktrace e throws
[Curso Java Basico - Exceptions] Aula 50: stacktrace e throws[Curso Java Basico - Exceptions] Aula 50: stacktrace e throws
[Curso Java Basico - Exceptions] Aula 50: stacktrace e throwsLoiane Groner
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Androidtdc-globalcode
 

Tendances (19)

Erros, exceções e asserções
Erros, exceções e asserçõesErros, exceções e asserções
Erros, exceções e asserções
 
Excecoes em Java
Excecoes em JavaExcecoes em Java
Excecoes em Java
 
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
 
Excepções JAVA
Excepções JAVAExcepções JAVA
Excepções JAVA
 
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)
 
Testes com JUnit
Testes com JUnitTestes com JUnit
Testes com JUnit
 
Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 
Teste unitário
Teste unitárioTeste unitário
Teste unitário
 
Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 
Tratamento de erros
Tratamento de errosTratamento de erros
Tratamento de erros
 
UnP Eng. Software - Aula 28
UnP Eng. Software - Aula 28UnP Eng. Software - Aula 28
UnP Eng. Software - Aula 28
 
Ferramentas testes2003
Ferramentas testes2003Ferramentas testes2003
Ferramentas testes2003
 
[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
 
[Curso Java Basico - Exceptions] Aula 49: finally
[Curso Java Basico - Exceptions] Aula 49: finally[Curso Java Basico - Exceptions] Aula 49: finally
[Curso Java Basico - Exceptions] Aula 49: finally
 
Curso java 07 - exceções
Curso java   07 - exceçõesCurso java   07 - exceções
Curso java 07 - exceções
 
Testes de unidade e TDD SoLiSC 2011
Testes de unidade e TDD SoLiSC 2011Testes de unidade e TDD SoLiSC 2011
Testes de unidade e TDD SoLiSC 2011
 
Testes de Unidade com JUnit
Testes de Unidade com JUnitTestes de Unidade com JUnit
Testes de Unidade com JUnit
 
[Curso Java Basico - Exceptions] Aula 50: stacktrace e throws
[Curso Java Basico - Exceptions] Aula 50: stacktrace e throws[Curso Java Basico - Exceptions] Aula 50: stacktrace e throws
[Curso Java Basico - Exceptions] Aula 50: stacktrace e throws
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Android
 

En vedette

Webpages2
Webpages2Webpages2
Webpages2EMSNEWS
 
Adoptie van buitenlandse kinderen
Adoptie van buitenlandse kinderenAdoptie van buitenlandse kinderen
Adoptie van buitenlandse kinderenColetteDewulf
 
Teclas de atalho
Teclas de atalhoTeclas de atalho
Teclas de atalhoEMSNEWS
 
Cabeamento de redes
Cabeamento de redesCabeamento de redes
Cabeamento de redesEMSNEWS
 
Java script
Java scriptJava script
Java scriptEMSNEWS
 
Webpages
WebpagesWebpages
WebpagesEMSNEWS
 
Presentationsprogram workshop 2
Presentationsprogram workshop 2Presentationsprogram workshop 2
Presentationsprogram workshop 2ITdidaktiker
 
Tabela de cores em html
Tabela de cores em htmlTabela de cores em html
Tabela de cores em htmlEMSNEWS
 
Castro alves espumas flutuantes
Castro alves   espumas flutuantesCastro alves   espumas flutuantes
Castro alves espumas flutuantesEMSNEWS
 
De hora em hora de "Ruth Rocha"
De hora em hora de "Ruth Rocha"De hora em hora de "Ruth Rocha"
De hora em hora de "Ruth Rocha"Renata Damasceno
 
Teaching Students with Emojis, Emoticons, & Textspeak
Teaching Students with Emojis, Emoticons, & TextspeakTeaching Students with Emojis, Emoticons, & Textspeak
Teaching Students with Emojis, Emoticons, & TextspeakShelly Sanchez Terrell
 

En vedette (20)

As 400
As 400As 400
As 400
 
Aglets
AgletsAglets
Aglets
 
Applets
AppletsApplets
Applets
 
Webpages2
Webpages2Webpages2
Webpages2
 
Atag10
Atag10Atag10
Atag10
 
Adoptie van buitenlandse kinderen
Adoptie van buitenlandse kinderenAdoptie van buitenlandse kinderen
Adoptie van buitenlandse kinderen
 
Teclas de atalho
Teclas de atalhoTeclas de atalho
Teclas de atalho
 
Html
HtmlHtml
Html
 
Guia5
Guia5Guia5
Guia5
 
Novos Versos Gameleiros
Novos Versos GameleirosNovos Versos Gameleiros
Novos Versos Gameleiros
 
01 m030 43062
01 m030 4306201 m030 43062
01 m030 43062
 
Cabeamento de redes
Cabeamento de redesCabeamento de redes
Cabeamento de redes
 
Java script
Java scriptJava script
Java script
 
Apple Dental
Apple DentalApple Dental
Apple Dental
 
Webpages
WebpagesWebpages
Webpages
 
Presentationsprogram workshop 2
Presentationsprogram workshop 2Presentationsprogram workshop 2
Presentationsprogram workshop 2
 
Tabela de cores em html
Tabela de cores em htmlTabela de cores em html
Tabela de cores em html
 
Castro alves espumas flutuantes
Castro alves   espumas flutuantesCastro alves   espumas flutuantes
Castro alves espumas flutuantes
 
De hora em hora de "Ruth Rocha"
De hora em hora de "Ruth Rocha"De hora em hora de "Ruth Rocha"
De hora em hora de "Ruth Rocha"
 
Teaching Students with Emojis, Emoticons, & Textspeak
Teaching Students with Emojis, Emoticons, & TextspeakTeaching Students with Emojis, Emoticons, & Textspeak
Teaching Students with Emojis, Emoticons, & Textspeak
 

Similaire à Excecoes

Apostila: Curso de java I
Apostila: Curso de java IApostila: Curso de java I
Apostila: Curso de java IVerônica Veiga
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceçõesFAFICA
 
Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3guestd6da1cd
 
Java: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosJava: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosArthur Emanuel
 
Desenvolvimento de Software
Desenvolvimento de SoftwareDesenvolvimento de Software
Desenvolvimento de SoftwareVagner Santana
 
Curso Java Básico - Aula 04
Curso Java Básico - Aula 04Curso Java Básico - Aula 04
Curso Java Básico - Aula 04Natanael Fonseca
 
04 - Gerenciamento de Threads - II
04 -  Gerenciamento de Threads - II04 -  Gerenciamento de Threads - II
04 - Gerenciamento de Threads - IIFabio Moura Pereira
 
Programação Concorrente - Gerenciamento de Threads - Parte II
Programação Concorrente - Gerenciamento de Threads - Parte IIProgramação Concorrente - Gerenciamento de Threads - Parte II
Programação Concorrente - Gerenciamento de Threads - Parte IIFabio Moura Pereira
 
Tratamento de exceções com PHP
Tratamento de exceções com PHPTratamento de exceções com PHP
Tratamento de exceções com PHPLeonardo Soares
 
Tratamento de excees slide trabalho
Tratamento de excees slide trabalhoTratamento de excees slide trabalho
Tratamento de excees slide trabalhoHigor Klecyus
 
Programando em python excecoes
Programando em python   excecoesProgramando em python   excecoes
Programando em python excecoessamuelthiago
 
Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com javaMaurício Linhares
 

Similaire à Excecoes (20)

Erros, exceções e asserções
Erros, exceções e asserçõesErros, exceções e asserções
Erros, exceções e asserções
 
Exceptions Em Java UFF
Exceptions Em Java UFFExceptions Em Java UFF
Exceptions Em Java UFF
 
Apostila: Curso de java I
Apostila: Curso de java IApostila: Curso de java I
Apostila: Curso de java I
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceções
 
Programação Defensiva
Programação DefensivaProgramação Defensiva
Programação Defensiva
 
Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3Linguagens de Programação II - Aula 3
Linguagens de Programação II - Aula 3
 
Java: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de ErrosJava: Excecoes e Tratamento de Erros
Java: Excecoes e Tratamento de Erros
 
Desenvolvimento de Software
Desenvolvimento de SoftwareDesenvolvimento de Software
Desenvolvimento de Software
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 
Aula Tratamento de Exceções
Aula Tratamento de ExceçõesAula Tratamento de Exceções
Aula Tratamento de Exceções
 
Curso Java Básico - Aula 04
Curso Java Básico - Aula 04Curso Java Básico - Aula 04
Curso Java Básico - Aula 04
 
Java7 tdc2011
Java7 tdc2011Java7 tdc2011
Java7 tdc2011
 
04 - Gerenciamento de Threads - II
04 -  Gerenciamento de Threads - II04 -  Gerenciamento de Threads - II
04 - Gerenciamento de Threads - II
 
Programação Concorrente - Gerenciamento de Threads - Parte II
Programação Concorrente - Gerenciamento de Threads - Parte IIProgramação Concorrente - Gerenciamento de Threads - Parte II
Programação Concorrente - Gerenciamento de Threads - Parte II
 
Tratamento de exceções com PHP
Tratamento de exceções com PHPTratamento de exceções com PHP
Tratamento de exceções com PHP
 
Java3
Java3Java3
Java3
 
Tratamento de excees slide trabalho
Tratamento de excees slide trabalhoTratamento de excees slide trabalho
Tratamento de excees slide trabalho
 
Programando em python excecoes
Programando em python   excecoesProgramando em python   excecoes
Programando em python excecoes
 
Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com java
 
Java Básico :: Exceções
Java Básico :: ExceçõesJava Básico :: Exceções
Java Básico :: Exceções
 

Plus de EMSNEWS

Html completo
Html completoHtml completo
Html completoEMSNEWS
 
Fontes chaveadas
Fontes chaveadasFontes chaveadas
Fontes chaveadasEMSNEWS
 
Cabeamentos e conectores
Cabeamentos e conectores Cabeamentos e conectores
Cabeamentos e conectores EMSNEWS
 
Aterramento
AterramentoAterramento
AterramentoEMSNEWS
 
Aspectos transistores
Aspectos transistoresAspectos transistores
Aspectos transistoresEMSNEWS
 
Arquitetura pentium
Arquitetura pentiumArquitetura pentium
Arquitetura pentiumEMSNEWS
 
Arquitetura ibm pc
Arquitetura ibm pcArquitetura ibm pc
Arquitetura ibm pcEMSNEWS
 
Apostila wireless
Apostila wirelessApostila wireless
Apostila wirelessEMSNEWS
 
Tutorial de macromedia flash
Tutorial de macromedia flashTutorial de macromedia flash
Tutorial de macromedia flashEMSNEWS
 
Pdf portugues
Pdf portuguesPdf portugues
Pdf portuguesEMSNEWS
 
Pdf literatura
Pdf literaturaPdf literatura
Pdf literaturaEMSNEWS
 
Apostila wireless
Apostila wirelessApostila wireless
Apostila wirelessEMSNEWS
 
Apostila de som_(pdf)
Apostila de som_(pdf)Apostila de som_(pdf)
Apostila de som_(pdf)EMSNEWS
 

Plus de EMSNEWS (19)

Assign
AssignAssign
Assign
 
Guia4
Guia4Guia4
Guia4
 
Html
HtmlHtml
Html
 
Html completo
Html completoHtml completo
Html completo
 
Fontes chaveadas
Fontes chaveadasFontes chaveadas
Fontes chaveadas
 
Cabeamentos e conectores
Cabeamentos e conectores Cabeamentos e conectores
Cabeamentos e conectores
 
Básico
BásicoBásico
Básico
 
Aterramento
AterramentoAterramento
Aterramento
 
Aspectos transistores
Aspectos transistoresAspectos transistores
Aspectos transistores
 
Arquitetura pentium
Arquitetura pentiumArquitetura pentium
Arquitetura pentium
 
Arquitetura ibm pc
Arquitetura ibm pcArquitetura ibm pc
Arquitetura ibm pc
 
Apostila wireless
Apostila wirelessApostila wireless
Apostila wireless
 
Tutorial de macromedia flash
Tutorial de macromedia flashTutorial de macromedia flash
Tutorial de macromedia flash
 
Cd rom
Cd romCd rom
Cd rom
 
Pdf portugues
Pdf portuguesPdf portugues
Pdf portugues
 
Pdf literatura
Pdf literaturaPdf literatura
Pdf literatura
 
Apostila wireless
Apostila wirelessApostila wireless
Apostila wireless
 
Autocad
AutocadAutocad
Autocad
 
Apostila de som_(pdf)
Apostila de som_(pdf)Apostila de som_(pdf)
Apostila de som_(pdf)
 

Dernier

ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxD9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxRonys4
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumAugusto Costa
 
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERDeiciane Chaves
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxkarinedarozabatista
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSilvana Silva
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavrasMary Alvarenga
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptxthaisamaral9365923
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 

Dernier (20)

ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptxD9 RECONHECER GENERO DISCURSIVO SPA.pptx
D9 RECONHECER GENERO DISCURSIVO SPA.pptx
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
 
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptx
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
Bullying - Atividade com caça- palavras
Bullying   - Atividade com  caça- palavrasBullying   - Atividade com  caça- palavras
Bullying - Atividade com caça- palavras
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 

Excecoes

  • 1. Tratamento de Erros Gerenciamento de erros com Exceções em Java
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. Tratamento “complicado” de erros tipoErro leArquivo() { tipoErro códigoErro = 0; abrir arquivo; se (arquivo abriu) então { determinar tamanho do arquivo; se (conseguiu obter tamanho do arquivo) então { alocar memória suficiente; se (conseguiu memória suficiente) então { ler o arquivo para memória; se (leitura falhou) então códigoErro = -1; } senão códigoErro = -2 } senão códigoErro = -3 fechar o arquivo; se (arquivo não fechou) códigoErro = -4 } senão códigoErro = -5 retorne códigoErro; }
  • 11.
  • 12.
  • 13.
  • 14.
  • 15. Formato geral do código para lançar e tratar exceções try { //código que pode gerar uma exceção } catch (Exception e) //captura a exceção { //código para tratar a exceção } finally { } void método1() throws IOException { //código que pode gerar uma IOException } void método2() throws IOException { //testa condição de exceção if (excep)then throw (new IOException()); } Captura da Exceção Passagem da Exceção pelo Método Lançamento de Exceções
  • 16.
  • 17.
  • 18. Mais um exemplo: class Conta { public static void main (String args[]) { int divisor = 0; int numero = 30; int indice = 100; int c[] = {1}; try { int resultado = numero / divisor; c[indice] = resultado; } catch (ArithmeticException a) { System.out.println(&quot;Divisão por zero&quot;); divisor = 1; } catch (IndexOutOfBoundsException x) { System.out.println(&quot;Estourou o índice do array&quot;); indice = 0; } } }
  • 19. Variações sobre o mesmo exemplo: class Conta { public static void main (String args[]) { int divisor = 0; int numero = 30; int indice = 100; int c[] = {1}; try { int resultado = numero / divisor; try { c[indice] = resultado; } catch (IndexOutOfBoundsException x) { System.out.println(&quot;Estourou o índice do array&quot;); indice = 0; } } catch (ArithmeticException a) { System.out.println(&quot;Divisão por zero&quot;); divisor = 1; } } }
  • 20. Um exemplo diferente... import java.io.*; public class LeArquivo { private FileReader entrada; public LeArquivo(String nomeArquivo) { entrada = new FileReader(nomeArquivo); } public String pegaPalavra() { int c; StringBuffer buf = new StringBuffer(); do { c = entrada.read(); if (Character.isWhitespace((char)c)) return buf.toString(); else buf.append((char)c); } while (c != -1); return buf.toString(); } }
  • 21. ...que não compila ! C:gt;javac LeArquivo.java LeArquivo.java:7: Exception java.io.FileNotFoundException must be caught, or it must be declared in the throws clause of this constructor. entrada = new FileReader(nomeArquivo); ^ LeArquivo.java:15: Exception java.io.IOException must be caught, or it must be declared in the throws clause of this method. c = entrada.read(); ^ 2 errors Pois o compilador sabe que, em ambos os métodos, estão sendo utilizadas instruções que podem ocasionar erro e, portanto, que lançam exceções. Só que estas exceções não estão sendo tratadas
  • 22.
  • 23. Agora o exemplo compila ! import java.io.*; public class LeArquivoOK { private FileReader entrada; public LeArquivoOK(String nomeArquivo) throws FileNotFoundException { entrada = new FileReader(nomeArquivo); } public String pegaPalavra() throws IOException { int c; StringBuffer buf = new StringBuffer(); do { c = entrada.read(); if (Character.isWhitespace((char)c)) return buf.toString(); else buf.append((char)c); } while (c != -1); return buf.toString(); } }
  • 24.
  • 25. E quem usa tem que fazer o seguinte... import java.io.*; import LeArquivoOK; public class TesteLeArquivosOK { public static void main (String args[]) { LeArquivoOK l; try { l = new LeArquivoOK(”123DeOliveira4.txt&quot;); } catch (FileNotFoundException f) { System.out.println(&quot;Deu pau ! &quot; + f.getMessage()); f.printStackTrace(); } System.out.println(&quot;Abriu&quot;); } }
  • 26. Ou algo um pouco mais sofisticado... import LeArquivoOK; import java.io.*; public class TesteLeArquivosOK { private LeArquivoOK l; private String nomeArq = &quot;12345678.txt&quot;; private boolean abriu = false; public void tentaAbrir() { while (!abriu) { try { l = new LeArquivoOK(nomeArq); abriu = true; } catch (FileNotFoundException f) { System.out.println(&quot;Deu pau ! &quot; + f.getMessage()+&quot;&quot;); f.printStackTrace(); nomeArq = &quot;c:autoexec.bat&quot;; } } // while System.out.println(&quot;Abriu o arquivo &quot; + nomeArq); } public static void main (String args[]) { TesteLeArquivosOK t = new TesteLeArquivosOK(); t.tentaAbrir(); } }
  • 27.
  • 28.
  • 29. Exemplo do uso de throw public Object pop() throws EmptyStackException { Object obj; if (size == 0) throw new EmptyStackException(); obj = objectAt(size - 1); setObjectAt(size - 1, null); size--; return obj; }
  • 30.
  • 31.
  • 32. Um exemplo do uso de finally public void exemploBobo() { PrintWriter saida = null; try { System.out.println(&quot;Entrando no bloco try&quot;); saida = new PrintWriter(new FileWriter(&quot;ArqSaida.txt&quot;)); for (int i = 0; i < tamanho; i++) saida.println(&quot;Valor em: &quot; + i + &quot; = &quot; + vetor.elementAt(i)); } catch (ArrayIndexOutOfBoundsException e) { System.err.println(&quot;Capturada ArrayIndexOutOfBoundsException: &quot; +e.getMessage()); } catch (IOException e) { System.err.println(&quot;Capturada IOException: &quot; + e.getMessage()); } finally { if (saida != null) { System.out.println(&quot;Fechando o PrintWriter&quot;); saida.close(); } else { System.out.println(&quot;O PrintWriter não chegou a abrir&quot;); } } }
  • 33. Para encerrar: espiada em algumas classes de exceção (1/4) java.lang.Object | +--java.lang.Throwable | +--java.lang.Exception | +--AclNotFoundException +--ActivationException, +--AlreadyBoundException, +--ApplicationException, +--AWTException, +--BadLocationException, +--ClassNotFoundException, +--CloneNotSupportedException, +--DataFormatException, +--ExpandVetoException, +--GeneralSecurityException, +--IllegalAccessException, +--InstantiationException, +--InterruptedException,
  • 34. Para encerrar: espiada em algumas classes de exceção (2/4) +--IntrospectionException, +--InvocationTargetException, +--IOException | | | +--ChangedCharSetException, | +--CharConversionException, | +--EOFException, | +--FileNotFoundException, | +--InterruptedIOException, | +--MalformedURLException, | +--ObjectStreamException, | +--ProtocolException, | +--RemoteException, | +--SocketException, | +--SyncFailedException, | +--UnknownHostException, | +--UnknownServiceException, | +--UnsupportedEncodingException, | +--UTFDataFormatException, | +--ZipException
  • 35. Para encerrar: espiada em algumas classes de exceção (3/4) +--LastOwnerException, +--NoninvertibleTransformException, +--NoSuchFieldException, +--NoSuchMethodException, +--NotBoundException, +--NotOwnerException, +--ParseException, +--PrinterException, +--PrivilegedActionException, +--PropertyVetoException, +--RemarshalException, +--RuntimeException, | | | +--ArithmeticException, | +--ArrayStoreException, | +--CannotRedoException, | +--CannotUndoException, | +--ClassCastException, | +--CMMException,
  • 36. Para encerrar: espiada em algumas classes de exceção (4/4) | +--ConcurrentModificationException, | +--EmptyStackException, | +--IllegalArgumentException, | +--IllegalMonitorStateException, | +--IllegalPathStateException, | +--IllegalStateException, | +--ImagingOpException, | +--IndexOutOfBoundsException, | +--MissingResourceException, | +--NegativeArraySizeException, | +--NoSuchElementException, | +--NullPointerException, | +--ProfileDataException, | +--ProviderException, | +--RasterFormatException, | +--SecurityException, | +--SystemException, | +--UnsupportedOperationException +--ServerNotActiveException, +--SQLException, +--TooManyListenersException, +--UnsupportedFlavorException, +--UnsupportedLookAndFeelException,