16
Faculdade Estácio de Alagoas Curso: Sistemas de informação Disciplina: Linguagem de Programação Professor: Márcio Robério – [email protected] 2013 Tratamento de Exceção Aula 11

Tratamento de Exceção (em Java) - lncc.brrogerio/lingprog/11-TratamentoExcecao/AULA11a.pdf · O que é uma exceção? Indicação de um problema que ocorre durante a execução

Embed Size (px)

Citation preview

Faculdade Estácio de Alagoas Curso: Sistemas de informação

Disciplina: Linguagem de Programação Professor: Márcio Robério – [email protected]

2013

Tratamento de Exceção

Aula 11

O que é uma exceção?

Indicação de um problema que ocorre durante a execução de um programa (DEITEL, 2005).

Alguns problemas que geram exceções

• Pelo usuário: – Divisão por zero

– Caracteres inválidos

• Pelo código: – Senha de acesso ao banco de dados errada

– Tentativa de abrir um arquivo inexistente

– Manipulação de variável com valor null (sem objeto)

Tratamento de Exceções

• Mecanismo de identificar e tratar uma exceção

• Permite que o programa continue executando

• Favorece o desenvolvimento de aplicativos tolerante a falhas

Tratamento de Exceção em Java

Palavras utilizadas no tratamento de exceções:

throws

throw

finally

catch

try

Uma exceção em Java é...

Um objeto!

Classes de tratamento de exceções

Fonte: DEITEL, 2005, pg. 478

Classes de tratamento de exceções

• Throwable: classe base de todas as exceções. Fornece os métodos: – getMessage() – retorna mensagem do erro – printStackTrace() – retorna a pilha de métodos

chamados – toString - retorna uma string com a descrição da

descrição

• Exception: – subclasse de Thworable; – por convenção, todas as classes de exceção são

subclasses de Exception

Como tratar uma exceção

try {

trecho do código que pode gerar exceção

} catch (ClasseExceção1 objeto) {

tratamento da exceção 1

} catch (ClasseExceção2 objeto){

tratamento da exceção 2

} finnaly {

trecho que será executado sempre (opcional)

obs.: será chamado mesmo que no try exista o comando

“return”.

}

Métodos que lançam exceções

• Métodos podem definir exceções que podem gerar (disparar)

• O comando throw “dispara” a exceção

• O comando throws é colocado no método, seguido dos tipos de exceções que pode disparar

• O trecho do código que chamou o método deve tratar a exceção

Exemplo 01 programa sem tratamento de exceção

public class Teste01 {

public static void main(String[] args) {

int a, b, divisao, resto;

String entrada;

entrada = JOptionPane.showInputDialog("Informe um número inteiro");

a = Integer.parseInt(entrada);

entrada = JOptionPane.showInputDialog("Informe outro número inteiro");

b = Integer.parseInt(entrada);

divisao = a / b;

resto = a % b;

JOptionPane.showMessageDialog(null, "a/b = " + divisao);

JOptionPane.showMessageDialog(null, "a%b = " + resto);

}

}

Exemplo 01 ao executar o programa o usuário informa...

a=2; b=0. Erro: Exception in thread "main" java.lang.ArithmeticException: / by zero at Teste01.main(Teste01.java:13)

a=10; b=2.3. Erro: Exception in thread "main" java.lang.NumberFormatException: For input string: "2.3" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) at java.lang.Integer.parseInt(Integer.java:456) at java.lang.Integer.parseInt(Integer.java:497) at Teste01.main(Teste01.java:11)

Será que poderá ocorrer mais problemas?

Exemplo 02 programa sem tratamento de exceção

public class Teste02 {

public static void main(String args[]){

String nomes[] = new String[2]; // tamanho = 2

nomes[0] = "José";

nomes[1] = "Maria";

int indice;

String entrada = JOptionPane.showInputDialog(“Informe o indice”);

indice = Integer.parseInt(entrada);

System.out.println(nomes[indice]);

}

}

Qual o problema agora?

Exemplo 02 saída:

Saída:

José

Maria

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2

at Teste02.main(Teste02.java:8)

Atividades

Criar uma calculadora:

– Operações: • Soma

• Subtração

• Multiplicação

• Divisão

– Tratamento de exceção: • Entrada de dados

– Obs.: Não pode dar nenhum erro sem tratamento de exceção!

– Prazo : 20/05/2013 Enviar para [email protected]

Referências / sugestão de material para leitura

• H. DEITEL/P.J . Java: Como Programar. 6ª Ed.

• C. CAMARÃO, L. FIGUEIREDO. Programação de Computadores em Java. Editora LTC, 2003