Documente Academic
Documente Profesional
Documente Cultură
Introduo
Excees
Exemplo 1:
ArithmeticException lanada!
Exemplo 2:
Erro em tempo de execuo!
(ArrayIndexOutOfBoundsException)
Tipos de Excees
Erros aritmticos;
Estouro de limite de array;
Entrada de dados invlidos;
Erros na manipulao de arquivos;
Erros na comunicao com bancos de
dados;
Falhas de comunicao entre programas
distribudos;
Entre outros.
Programao Orientada a Objeto - Mrcio Bueno
Palavras Reservadas
Em Java:
try, catch e finally
Define um bloco de tratamento de
exceo.
throws
Declara que um mtodo pode lanar
uma exceo ou mais excees.
throw
Lana uma exceo.
Programao Orientada a Objeto - Mrcio Bueno
Tratamento de Excees
Tratamento de Excees
Tratamento de Excees
import javax.swing.JOptionPane;
public class Divide {
public static void main (String args[]) {
int dividendo, divisor;
while(true){
try {
dividendo = Integer.parseInt(JOptionPane.showInputDialog
("Digite o dividendo: "));
divisor = Integer.parseInt(JOptionPane.showInputDialog
("Digite o divisor: "));
divide(dividendo, divisor);
break;
} catch (ArithmeticException e1) {
JOptionPane.showMessageDialog(null,
"No pode dividir por zero!");
} catch (NumberFormatException e2) {
JOptionPane.showMessageDialog(null,
"Favor informar apenas nmeros inteiros!");
}
}
}
/* Mtodo divide aqui */
}
10
Tratamento de Excees
11
Tratamento de Excees
Usando throws
12
Tratamento de Excees
Usando throws
Sintaxe:
13
Tratamento de Excees
import java.io.FileWriter;
14
Tratamento de Excees
15
Tratamento de Excees
import java.io.FileWriter;
public class GravaArquivo {
public static void grava(String texto) throws IOException {
FileWriter fw = new FileWriter(teste.txt);
fw.write(texto);
fw.close( );
}
}
16
Tratamento de Excees
import java.io.FileWriter;
Mais alguma
import java.io.IOException;
exceo deveria
public class GravaArquivo {
ser tratada nesse
public static void main(String args[]) {
cdigo?
try {
grava(args[0]);
} catch (IOException e) {
System.out.println(Erro ao gravar arquivo!);
System.out.println(e); // Imprime detalhadamente a Exceo.
e.printStackTrace( ); // Imprime detalhadamente a Exceo.
}
}
}
Programao Orientada a Objeto - Mrcio Bueno
17
import java.io.FileWriter;
import java.io.IOException;
public class GravaArquivo {
public static void grava(String texto) throws IOException{
FileWriter fw = new FileWriter("teste.txt");
fw.write(texto);
fw.close( );
}
public static void main(String args[]) {
try {
grava(args[0]);
}catch(IOException e) {
System.out.println("Erro ao gravar arquivo!");
System.out.println(e); // Imprime detalhadamente a Exceo.
e.printStackTrace( ); // Imprime detalhadamente a Exceo.
}catch(ArrayIndexOutOfBoundsException e){
System.out.println(Voc deve digitar algo para gravar no arquivo!");
System.out.println(e); // Imprime detalhadamente a Exceo.
e.printStackTrace( ); // Imprime detalhadamente a Exceo.
}
}
}
Programao Orientada a Objeto - Mrcio Bueno
18
Tratamento de Excees
19
Tratamento de Excees
Usando finally
20
21
Excecao1
Excecao2
22
Exemplo 1 (Cont.):
As excees declaradas com throws podem
ser superclasses das excees que so
realmente lanadas:
public void metodo throws Excecao1, Excecao2 {
...
}
public void metodo throws Excecao {
...
}
Programao Orientada a Objeto - Mrcio Bueno
23
24
ArithmeticException e
ArrayIndexOutOfBoundsException so
subclasses de Exception!
Exception
RuntimeException
ArithmeticException
ArrayIndexOutOfBoundsException
25
26
Error
Exception
RuntimeException
27
Tratamento de Excees
Usando throw
Exemplo 1:
// Instanciando e lanando o objeto Exception
throw new Exception(Mensagem de ERRO!);
Exemplo 2:
// Instanciao do objeto Exception
Exception e = new Exception(Mensagem de ERRO!);
// Lanando a exceo
throw e;
Programao Orientada a Objeto - Mrcio Bueno
28
Exemplo:
29
Exemplo (cont.):
30
Exemplo (cont.):
31
Exerccios
Exerccio 1:
Implementar a exceo
ExcecaoDivisaoPorZero. Esta exceo ser
lanada pelo mtodo double calcula(double a,
double b) da classe Divisao.
Implementar tambm a aplicao
AplicacaoDivisao que recebe dois nmeros
informados pelo usurio e faz a diviso do
primeiro pelo segundo usando uma chamada
ao mtodo calcula da classe Divisao.
Programao Orientada a Objeto - Mrcio Bueno
32
Exerccios
33