SlideShare ist ein Scribd-Unternehmen logo
1 von 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,

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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)
 

Kürzlich hochgeladen

planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxLusGlissonGud
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorEdvanirCosta
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
Bloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxBloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxkellyneamaral
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 

Kürzlich hochgeladen (20)

planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de Professor
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
Bloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxBloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docx
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 

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,