SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Exceções ,[object Object],[object Object]
Problema 1 ,[object Object]
Soluções ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Problema 2 // ... Conta minhaConta =  new  Conta(); minhaConta.deposita(100); minhaConta.setLimite(100); minhaConta.saca(1000); //  o saldo é -900? É 100? É 0? // A chamada ao método saca funcionou?
Soluções public boolean  saca( double  quantidade) { if  (quantidade >  this .saldo +  this .limite) {  System.out.println( "Saque fora do limite!" ); return   false ; }  else  { this .saldo =  this .saldo – quantidade; return   true ; } } ,[object Object],[object Object]
Problema 2 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Exceções ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Por que usar exceções? ,[object Object],[object Object],[object Object]
Exceções ,[object Object],[object Object],[object Object],[object Object]
Pilha de Execução public class  TesteErro { public   static   void  main(String[] args) { System. out .println( &quot;inicio do main&quot; ); metodo1 (); System. out .println( &quot;fim do main&quot; ); } public   static   void  metodo1() { System. out .println( &quot;inicio do metodo1&quot; ); metodo2 (); System. out .println( &quot;fim do metodo1&quot; ); } public   static   void  metodo2() { System. out .println( &quot;inicio do metodo2&quot; ); int [] array =  new   int [10]; for  ( int  i = 0; i <= 15; i++) { array[i] = i; System. out .println(i); } System. out .println( &quot;fim do metodo2&quot; ); } }
Rastro da Pilha - Stacktrace Exception in thread &quot;main&quot;  java.lang.ArrayIndexOutOfBoundsException : 10 at TesteErro.metodo2( TesteErro.java:18 ) at TesteErro.metodo1( TesteErro.java:10 ) at TesteErro.main( TesteErro.java:4 )
Soluções try  { for ( int  i = 0; i <= 15; i++) { array[i] = i; System.out.println(i); } }  catch  (ArrayIndexOutOfBoundsException e) { System.out.println( &quot;erro: &quot;  + e); } for ( int  i = 0; i <= 15; i++) { try  { array[i] = i; System.out.println(i); }  catch  (ArrayIndexOutOfBoundsException e) { System.out.println( &quot;erro: &quot;  + e); } }
Bloco try ,[object Object],[object Object],[object Object],[object Object],[object Object]
Bloco catch ,[object Object],[object Object],[object Object]
Bloco finally ,[object Object]
Tratamento de Exceções
Exceções não checadas public   class  Exemplo09 { public   static   void  main(String args[]) { int  i = 5571; i = i / 0; System. out .println( &quot;O resultado &quot;  + i); } } Exception in thread &quot;main&quot;  java.lang.ArithmeticException : / by zero at Exemplo09.main( Exemplo09.java:4 )
Exceções não checadas public   class  Exemplo09 { public   static   void  main(String args[]) { Conta c =  null ; System. out .println( &quot;Saldo: &quot;  + c.getSaldo()); } } Exception in thread &quot;main&quot;  java.lang.NullPointerException at Exemplo09.main( Exemplo09.java:4 )
Exceções não checadas public   class  Exemplo09 { public   static   void  main(String args[]) { int  i = Integer. parseInt ( &quot;a&quot; ); System. out .println(i); } } Exception in thread &quot;main&quot;  java.lang.NumberFormatException : For input string: &quot;a&quot; at java.lang.NumberFormatException.forInputString( NumberFormatException.java:48 ) at java.lang.Integer.parseInt( Integer.java:447 ) at java.lang.Integer.parseInt( Integer.java:497 ) at Exemplo09.main( Exemplo09.java:3 )
Exceções não checadas ,[object Object],[object Object],[object Object]
Exceções checadas import  java.io.FileReader; public   class  Exemplo09 { public   static   void  main(String args[]) { FileReader f =  new  FileReader( &quot;teste.txt&quot; ); } } Exception in thread &quot;main&quot; java.lang.Error:  Unresolved compilation problem:  Unhandled exception type  FileNotFoundException at Exemplo09.main( Exemplo09.java:5 )
Tratamento de Exceções - catch import  java.io.FileNotFoundException; import  java.io.FileReader; public   class  Exemplo09 { public   static   void  main(String args[]) { try  { FileReader f =  new  FileReader( &quot;teste.txt&quot; ); }  catch  (FileNotFoundException e) { System. out .println( &quot;Arquivo não existe&quot; ); } } }
Propagação de Exceções - throws import  java.io.FileNotFoundException; import  java.io.FileReader; public   class  Exemplo09 { public   static   void  main(String args[])  throws  FileNotFoundException { FileReader f =  new  FileReader( &quot;teste.txt&quot; ); } }
Tratamento de Exceções
Tratamento de Exceções ,[object Object]
Tratamento de Exceções
Lançamento de Exceções public   class  Conta { double   saldo ; // ... public   boolean  saca( double  valor){ if ( this . saldo  < valor){ return   false ; }  else  { this . saldo -=valor; return   true ; } } // ... }
Lançamento de Exceções public   class  Conta { double   saldo ; // ... public   void  saca( double  valor){ if ( this . saldo  < valor){ throw   new  IllegalArgumentException( &quot;Saldo insuficiente&quot; ); }  else  { this . saldo -=valor; } } // ... }
IllegalArgumentException ,[object Object],[object Object],[object Object],[object Object],// ... Conta  cc  =  new  ContaCorrente(); cc.deposita(100); try { cc .saca(100); } catch (IllegalArgumentException e){ System.out.println(e.getMessage()); } // ...
Criando Exceções public   class  SaldoInsuficienteException  extends  RuntimeException { public  SaldoInsuficienteException(String message) { super (message); } }
Usando nossas exceções public   class  Conta { double   saldo ; // ... public   void  saca( double  valor){ if ( this . saldo  < valor){ throw   new  SaldoInsuficienteException( &quot;Use um valor menor&quot; ); }  else  { this . saldo -=valor; } } // ... } // ... Conta  cc  =  new  ContaCorrente(); cc.deposita(100); try { cc .saca(100); } catch (SaldoInsuficienteException e){ System.out.println(e.getMessage()); } // ...
Tratamento de Exceções ,[object Object],[object Object],[object Object]
Lançamento de Exceções ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Hierarquia de Exceções ,[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]
Hierarquia de Exceções
Hierarquia de Exceções ,[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]
Hierarquia de Exceções ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Hierarquia de Exceções ,[object Object],[object Object],[object Object]
Criando uma Exceção ,[object Object],[object Object],[object Object],[object Object],[object Object]
Criando uma Exceção
Exceções verificadas (checked) ou não verificadas (unchecked)? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Exceções verificadas (checked) ou não verificadas (unchecked)? ,[object Object],[object Object],[object Object]
Resumo ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Prática ,[object Object],[object Object],[object Object]

Weitere ähnliche Inhalte

Was ist angesagt?

Java - Exception Handling Concepts
Java - Exception Handling ConceptsJava - Exception Handling Concepts
Java - Exception Handling ConceptsVicter Paul
 
Understanding java streams
Understanding java streamsUnderstanding java streams
Understanding java streamsShahjahan Samoon
 
Java exception handling
Java exception handlingJava exception handling
Java exception handlingBHUVIJAYAVELU
 
Exception handling c++
Exception handling c++Exception handling c++
Exception handling c++Jayant Dalvi
 
OCA Java SE 8 Exam Chapter 6 Exceptions
OCA Java SE 8 Exam Chapter 6 ExceptionsOCA Java SE 8 Exam Chapter 6 Exceptions
OCA Java SE 8 Exam Chapter 6 Exceptionsİbrahim Kürce
 
[Curso Java Basico] Aula 17: Loop for
[Curso Java Basico] Aula 17:  Loop for[Curso Java Basico] Aula 17:  Loop for
[Curso Java Basico] Aula 17: Loop forLoiane Groner
 
Packages,interfaces and exceptions
Packages,interfaces and exceptionsPackages,interfaces and exceptions
Packages,interfaces and exceptionsMavoori Soshmitha
 
Classes, Objects and Method - Object Oriented Programming with Java
Classes, Objects and Method - Object Oriented Programming with JavaClasses, Objects and Method - Object Oriented Programming with Java
Classes, Objects and Method - Object Oriented Programming with JavaRadhika Talaviya
 
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Lista de exercicios   vetores, matrizes, registros e sub-algoritmosLista de exercicios   vetores, matrizes, registros e sub-algoritmos
Lista de exercicios vetores, matrizes, registros e sub-algoritmosMauro Pereira
 
Exception Handling in JAVA
Exception Handling in JAVAException Handling in JAVA
Exception Handling in JAVASURIT DATTA
 
Java exception handling ppt
Java exception handling pptJava exception handling ppt
Java exception handling pptJavabynataraJ
 
9. Input Output in java
9. Input Output in java9. Input Output in java
9. Input Output in javaNilesh Dalvi
 
SO-03 Comunicação e Sincronização de Processos
SO-03 Comunicação e Sincronização de ProcessosSO-03 Comunicação e Sincronização de Processos
SO-03 Comunicação e Sincronização de ProcessosEduardo Nicola F. Zagari
 

Was ist angesagt? (20)

Java - Exception Handling Concepts
Java - Exception Handling ConceptsJava - Exception Handling Concepts
Java - Exception Handling Concepts
 
Understanding java streams
Understanding java streamsUnderstanding java streams
Understanding java streams
 
Java exception handling
Java exception handlingJava exception handling
Java exception handling
 
Exception handling c++
Exception handling c++Exception handling c++
Exception handling c++
 
Exception handling in java
Exception handling  in javaException handling  in java
Exception handling in java
 
OCA Java SE 8 Exam Chapter 6 Exceptions
OCA Java SE 8 Exam Chapter 6 ExceptionsOCA Java SE 8 Exam Chapter 6 Exceptions
OCA Java SE 8 Exam Chapter 6 Exceptions
 
11. inheritance
11. inheritance11. inheritance
11. inheritance
 
Clean code
Clean codeClean code
Clean code
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
 
[Curso Java Basico] Aula 17: Loop for
[Curso Java Basico] Aula 17:  Loop for[Curso Java Basico] Aula 17:  Loop for
[Curso Java Basico] Aula 17: Loop for
 
Generics
GenericsGenerics
Generics
 
Packages,interfaces and exceptions
Packages,interfaces and exceptionsPackages,interfaces and exceptions
Packages,interfaces and exceptions
 
Java 8 Lambda and Streams
Java 8 Lambda and StreamsJava 8 Lambda and Streams
Java 8 Lambda and Streams
 
Classes, Objects and Method - Object Oriented Programming with Java
Classes, Objects and Method - Object Oriented Programming with JavaClasses, Objects and Method - Object Oriented Programming with Java
Classes, Objects and Method - Object Oriented Programming with Java
 
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Lista de exercicios   vetores, matrizes, registros e sub-algoritmosLista de exercicios   vetores, matrizes, registros e sub-algoritmos
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
 
Exception Handling in JAVA
Exception Handling in JAVAException Handling in JAVA
Exception Handling in JAVA
 
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
 
Java exception handling ppt
Java exception handling pptJava exception handling ppt
Java exception handling ppt
 
9. Input Output in java
9. Input Output in java9. Input Output in java
9. Input Output in java
 
SO-03 Comunicação e Sincronização de Processos
SO-03 Comunicação e Sincronização de ProcessosSO-03 Comunicação e Sincronização de Processos
SO-03 Comunicação e Sincronização de Processos
 

Ähnlich wie Como tratar exceções em Java de forma correta

Excecoes
ExcecoesExcecoes
ExcecoesEMSNEWS
 
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
 
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
 
Certificação Java: Exceções
Certificação Java: ExceçõesCertificação Java: Exceções
Certificação Java: ExceçõesEduardo Mendes
 
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
 
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
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceçõesFAFICA
 

Ähnlich wie Como tratar exceções em Java de forma correta (20)

Erros, exceções e asserções
Erros, exceções e asserçõesErros, exceções e asserções
Erros, exceções e asserções
 
Erros, exceções e asserções
Erros, exceções e asserçõesErros, exceções e asserções
Erros, exceções e asserções
 
Java3
Java3Java3
Java3
 
Excecoes
ExcecoesExcecoes
Excecoes
 
Exceptions Em Java UFF
Exceptions Em Java UFFExceptions Em Java UFF
Exceptions Em Java UFF
 
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
 
Excepções JAVA
Excepções JAVAExcepções JAVA
Excepções JAVA
 
Tratamento de exceções em Java
Tratamento de exceções em JavaTratamento de exceções em Java
Tratamento de exceções em Java
 
Certificação Java: Exceções
Certificação Java: ExceçõesCertificação Java: Exceções
Certificação Java: Exceções
 
Tratamento de erros
Tratamento de errosTratamento de erros
Tratamento de erros
 
Excecoes em Java
Excecoes em JavaExcecoes em Java
Excecoes em Java
 
JAVA - Tratamento de Erros
JAVA - Tratamento de ErrosJAVA - Tratamento de Erros
JAVA - Tratamento de Erros
 
Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 
Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 
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
 
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)
 
Programação Defensiva
Programação DefensivaProgramação Defensiva
Programação Defensiva
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceções
 
Aula Tratamento de Exceções
Aula Tratamento de ExceçõesAula Tratamento de Exceções
Aula Tratamento de Exceções
 

Mehr von Regis Magalhães

Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducaoRegis Magalhães
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosRegis Magalhães
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webRegis Magalhães
 
Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosProg web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosRegis Magalhães
 
Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosProg web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosRegis Magalhães
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosRegis Magalhães
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosRegis Magalhães
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webRegis Magalhães
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducaoRegis Magalhães
 
Linked Data Tutorial - Conferencia W3C Brasil 2011
Linked Data Tutorial - Conferencia W3C Brasil 2011Linked Data Tutorial - Conferencia W3C Brasil 2011
Linked Data Tutorial - Conferencia W3C Brasil 2011Regis Magalhães
 
Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Regis Magalhães
 

Mehr von Regis Magalhães (20)

High Dimensional Data
High Dimensional DataHigh Dimensional Data
High Dimensional Data
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
PHP 10 CodeIgniter
PHP 10 CodeIgniterPHP 10 CodeIgniter
PHP 10 CodeIgniter
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducao
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
 
Prog web 09-php-crud-mvc
Prog web 09-php-crud-mvcProg web 09-php-crud-mvc
Prog web 09-php-crud-mvc
 
Prog web 08-php-mvc
Prog web 08-php-mvcProg web 08-php-mvc
Prog web 08-php-mvc
 
Prog web 07-pdo
Prog web 07-pdoProg web 07-pdo
Prog web 07-pdo
 
Prog web 06-php-oo
Prog web 06-php-ooProg web 06-php-oo
Prog web 06-php-oo
 
Prog web 05-php-mysql
Prog web 05-php-mysqlProg web 05-php-mysql
Prog web 05-php-mysql
 
Prog web 04-php-gd
Prog web 04-php-gdProg web 04-php-gd
Prog web 04-php-gd
 
Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosProg web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhos
 
Prog web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhosProg web 03-php-sessoes-cookies_cabecalhos
Prog web 03-php-sessoes-cookies_cabecalhos
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Prog web 02-php-primeiros-passos
Prog web 02-php-primeiros-passosProg web 02-php-primeiros-passos
Prog web 02-php-primeiros-passos
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
 
Prog web 01-php-introducao
Prog web 01-php-introducaoProg web 01-php-introducao
Prog web 01-php-introducao
 
Linked Data Tutorial - Conferencia W3C Brasil 2011
Linked Data Tutorial - Conferencia W3C Brasil 2011Linked Data Tutorial - Conferencia W3C Brasil 2011
Linked Data Tutorial - Conferencia W3C Brasil 2011
 
Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011Linked Data - Minicurso - SBBD 2011
Linked Data - Minicurso - SBBD 2011
 

Como tratar exceções em Java de forma correta

  • 1.
  • 2.
  • 3.
  • 4. Problema 2 // ... Conta minhaConta = new Conta(); minhaConta.deposita(100); minhaConta.setLimite(100); minhaConta.saca(1000); // o saldo é -900? É 100? É 0? // A chamada ao método saca funcionou?
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. Pilha de Execução public class TesteErro { public static void main(String[] args) { System. out .println( &quot;inicio do main&quot; ); metodo1 (); System. out .println( &quot;fim do main&quot; ); } public static void metodo1() { System. out .println( &quot;inicio do metodo1&quot; ); metodo2 (); System. out .println( &quot;fim do metodo1&quot; ); } public static void metodo2() { System. out .println( &quot;inicio do metodo2&quot; ); int [] array = new int [10]; for ( int i = 0; i <= 15; i++) { array[i] = i; System. out .println(i); } System. out .println( &quot;fim do metodo2&quot; ); } }
  • 11. Rastro da Pilha - Stacktrace Exception in thread &quot;main&quot; java.lang.ArrayIndexOutOfBoundsException : 10 at TesteErro.metodo2( TesteErro.java:18 ) at TesteErro.metodo1( TesteErro.java:10 ) at TesteErro.main( TesteErro.java:4 )
  • 12. Soluções try { for ( int i = 0; i <= 15; i++) { array[i] = i; System.out.println(i); } } catch (ArrayIndexOutOfBoundsException e) { System.out.println( &quot;erro: &quot; + e); } for ( int i = 0; i <= 15; i++) { try { array[i] = i; System.out.println(i); } catch (ArrayIndexOutOfBoundsException e) { System.out.println( &quot;erro: &quot; + e); } }
  • 13.
  • 14.
  • 15.
  • 17. Exceções não checadas public class Exemplo09 { public static void main(String args[]) { int i = 5571; i = i / 0; System. out .println( &quot;O resultado &quot; + i); } } Exception in thread &quot;main&quot; java.lang.ArithmeticException : / by zero at Exemplo09.main( Exemplo09.java:4 )
  • 18. Exceções não checadas public class Exemplo09 { public static void main(String args[]) { Conta c = null ; System. out .println( &quot;Saldo: &quot; + c.getSaldo()); } } Exception in thread &quot;main&quot; java.lang.NullPointerException at Exemplo09.main( Exemplo09.java:4 )
  • 19. Exceções não checadas public class Exemplo09 { public static void main(String args[]) { int i = Integer. parseInt ( &quot;a&quot; ); System. out .println(i); } } Exception in thread &quot;main&quot; java.lang.NumberFormatException : For input string: &quot;a&quot; at java.lang.NumberFormatException.forInputString( NumberFormatException.java:48 ) at java.lang.Integer.parseInt( Integer.java:447 ) at java.lang.Integer.parseInt( Integer.java:497 ) at Exemplo09.main( Exemplo09.java:3 )
  • 20.
  • 21. Exceções checadas import java.io.FileReader; public class Exemplo09 { public static void main(String args[]) { FileReader f = new FileReader( &quot;teste.txt&quot; ); } } Exception in thread &quot;main&quot; java.lang.Error: Unresolved compilation problem: Unhandled exception type FileNotFoundException at Exemplo09.main( Exemplo09.java:5 )
  • 22. Tratamento de Exceções - catch import java.io.FileNotFoundException; import java.io.FileReader; public class Exemplo09 { public static void main(String args[]) { try { FileReader f = new FileReader( &quot;teste.txt&quot; ); } catch (FileNotFoundException e) { System. out .println( &quot;Arquivo não existe&quot; ); } } }
  • 23. Propagação de Exceções - throws import java.io.FileNotFoundException; import java.io.FileReader; public class Exemplo09 { public static void main(String args[]) throws FileNotFoundException { FileReader f = new FileReader( &quot;teste.txt&quot; ); } }
  • 25.
  • 27. Lançamento de Exceções public class Conta { double saldo ; // ... public boolean saca( double valor){ if ( this . saldo < valor){ return false ; } else { this . saldo -=valor; return true ; } } // ... }
  • 28. Lançamento de Exceções public class Conta { double saldo ; // ... public void saca( double valor){ if ( this . saldo < valor){ throw new IllegalArgumentException( &quot;Saldo insuficiente&quot; ); } else { this . saldo -=valor; } } // ... }
  • 29.
  • 30. Criando Exceções public class SaldoInsuficienteException extends RuntimeException { public SaldoInsuficienteException(String message) { super (message); } }
  • 31. Usando nossas exceções public class Conta { double saldo ; // ... public void saca( double valor){ if ( this . saldo < valor){ throw new SaldoInsuficienteException( &quot;Use um valor menor&quot; ); } else { this . saldo -=valor; } } // ... } // ... Conta cc = new ContaCorrente(); cc.deposita(100); try { cc .saca(100); } catch (SaldoInsuficienteException e){ System.out.println(e.getMessage()); } // ...
  • 32.
  • 33.
  • 34.
  • 36.
  • 37.
  • 38.
  • 39.
  • 41.
  • 42.
  • 43.
  • 44.