Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Java Básico
Tratamento de Exceções
Prof. Jucimar Souza
jucibs@gmail.com
Objetivos
Entender exceções e tratamento de erros;
Ser capaz de utilizar blocos try para delimitar o código
em que uma exceção pode ocorrer;
Ser capaz de disparar (throw) exceções;
Utilizar os blocos catch para especificar tratadores de
exceções;
Utilizar o bloco finally para liberar recursos;
Entender a hierarquia de exceções em Java
Criar exceções definidas pelo programador.
1
03/11/2008
6.1 - Fundamentos
class TesteErro {
public static void main(String[] args) {
System.out.println("inicio do main");
metodo1();
System.out.println("fim do main");
}
2
03/11/2008
try
sim
erros catch
não
finally
3
03/11/2008
6.3 try-catch
Sintaxe:
try{
//bloco de código monitorado
}
catch(ExcecaoTipo1 exObj){
//tratamento da exceção do tipo1
}
catch(ExcecaoTipo2 exObj){
//tratamento da exceção do tipo2
}
o o o
catch(ExcecaoTipo exObj){
//tratamento da exceção do tipoN
}
finally{
//código executado antes de sair do bloco
}
4
03/11/2008
5
03/11/2008
ArithmeticException
6
03/11/2008
for(i=5; i>=0;i--){
try{
System.out.print("Dividindo 20 por " + i + "...");
a = 20/i;
System.out.println("20/" + i + "=" + a);
}
catch(ArithmeticException e){
//verifica a divisão por zero
System.out.println("Erro: divisao por zero");
}
}
} //fim do método main
} //fim da classe
for(i=0; i<=10;i++){
try{
a[i]=i*2;
System.out.print("a["+i+"]="+a[i]+"\n");
}
catch(ArrayIndexOutOfBoundsException e){
//Tratamento da Exceção
System.out.println("\n\nErro: Tentou acessar uma posicao no
vertor inexistente");
}
}
} //fim do método main
} //fim da classe
7
03/11/2008
8
03/11/2008
Ou assim :
public class TestaExcecoes {
9
03/11/2008
Com o throws:
public void abre(String arquivo) throws IOException,
SQLException {
// ..
}
Pode-se tratar algumas exceções e declarar as
outras no throws:
public void abre(String arquivo) throws IOException {
try {
objeto.metodoQuePodeLancarIOeSQLException();
} catch (SQLException e) {
// ..
}
}
10
03/11/2008
A instrução throw
é executada para indicar que uma exceção
ocorreu (isto é, um método não pode ser
completado com sucesso)
O operando de um throw pode ser de qualquer
classe derivada de Throwable
A diretiva throw lança um erro, para que um
bloco catch o capture e faça o tratamento
necessário.
Sintaxe:
throw instância_de_uma_exceção;
11
03/11/2008
cc.deposita(50);
try {
cc.saca(100);
} catch (IllegalArgumentException e) {
System.out.println(“Não pode sacar");
}
12
03/11/2008
Método printStackTrace
Imprime a pilha de chamada de método .
Auxilia no processo de teste e depuração do programa
Método getMessage
Devolve um string descritivo armazenado em uma
exceção.
O método getMessage() definido na classe Throwable
(mãe de todos os tipos de erros e exceptions) vai
retonar a mensagem que passamos ao construtor da
IllegalArgumentException.
13
03/11/2008
14
03/11/2008
6.11 - finally
15
03/11/2008
16
03/11/2008
Exercicios
17