Tratamento de Erros. Sérgio Luiz Ruivace Cerqueira

Documentos relacionados
Exceções. SCC0504 Programação Orientada a Objetos. Luiz Eduardo Virgilio da Silva ICMC, USP

Programação Java. Tratamento de Exceções

Tratamento de Exceções

TRATAMENTO DE EXCEÇÕES

Aula 13 Tratamento de Exceções. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Tratamento de Exceções

Tratamento de Exceções. Grupo de Linguagens de Programação Departamento de Informática PUC-Rio

Tratamento de Exceções. LPG II Java. Tratamento de Exceções. Conceito de Exceções. Exemplo

Tratamento de Exceções. Java Avançado. Tratamento de Exceções. Conceito de Exceções. Exemplo

Tratamento de Exceções

Java para Desktop. Exceções JSE

Tratamento de Exceção. Programação Orientada a Objetos Java (Rone Ilídio)

Aula 13 POO 1 Tratamento de Exceções no Java. Profa. Elaine Faria UFU

Programação Orientada a Objetos

Exceções AULA 13. Ricardo Massa F. Lima Sérgio C. B. Soares

Exceções. Profa. Patrícia A. Jaques Slides alterados por Leandro Tonietto Mar-12. quarta-feira, 21 de março de 12

Notas de Aula 09: Tratamento de exceções

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objetos

Exceções. Criando suas exceções

Programação Orientada a Objetos. Prof. Diemesleno Souza Carvalho

Tratamento de Exceções. Julio Cesar Nardi

Controlando Erros com Exceções

Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção.

Laboratório de Programação. Aula 12 Java 5COP088. Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

O tratamento de erros em Java

1. Estude e implemente a classe Exemplo1 apresentada abaixo:

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Prof. Rogério Albuquerque de Almeida. Programação Orientada a Objetos II JAVA Décima Segunda Aula

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

22/9/16. Agenda. Erros. Erros. Exceções. Mecanismo de exceções

Tratamento de Exceção. Tratamento de Exceções. Vantagens de TE. Exemplos de Exceções. Exemplo: Divide1 (sem TE)

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

9 Exceções. Desenvolvimento OO com Java. Vítor E. Silva Souza ~ vitorsouza

Tratamento de Exceções. Profa. Thienne Johnson EACH/USP

Programação Orientada a Objetos (DPADF 0063)

Programação Orientada a Objetos SANTOS, Rafael (PLT)

Tratamento de Exceções em Java

Programação de Computadores II TCC /Turma A 1

Tratamento de Exceções. Prof. Marcelo Roberto Zorzan

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Vetores Unimensionais

O que é uma Exceção? Call Stack. Java Tratamento de Exceção. de métodos que foram usados até chegar na presente instrução.

Mecanismo de exceções em Java

Programação de Computadores II

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc.

JAVA. Tópicos Especiais de Programação Orientada a Objetos. sexta-feira, 28 de setembro de 12

Linguagem Java - Introdução

Programação Orientada a Objetos II

Tipos de dados e comandos POO

Tratando exceções em Java

Entrada e Saída Exercício. Linguagem Java. Adenilso da Silva Simão 01/09/05

Threads e IO. Sérgio Luiz Ruivace Cerqueira

Subprogramação. Leonardo Gresta Paulino Murta.

[Desenvolvimento OO com Java] Exceções e controle de erros

Tratamento de Erro e Javadoc. Professor: Norton T. Roman

Tratamento de Exceções cont. Profa. Thienne Johnson EACH/USP

Vetores Unimensionais

Prof. Fernando V. Paulovich 8 de novembro de SCC Programação Orientada a Objetos

Tratamento de Exceções, Multithreads e arquivos (em Java) Programação Orientada a Objetos

Aplicações, durante a execução, podem incorrer em muitas espécies de erros de vários graus de severidade Quando métodos são invocados sobre um objeto:

Subprogramação. Leonardo Gresta Paulino Murta.

APIs Java: Tratamento de exceções e Coleções

terminar o programa; retornar um valor de erro indicando falha; retornar e ignorar o problema; chamar uma função para tratar o erro, etc...

Programação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida

Arrays em Java. Introdução à Programação. Bruno Cartaxo

Programação Orientada a Objetos

Introdução. LP OO desenvolvida pela Sun no início da década de 90 com sintaxe semelhente a C\C++. C C++.

LÓGICA DE PROGRAMAÇÃO (JAVA) ESTRUTURAS REPETIÇÃO. Professor Carlos Muniz

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Implementar um exemplo de relacionamento entre classes um para muitos (1:N) e um para um (1:1). Sistema para uma Promotora de Evento Agenda Anual

Programação Orientada a Objetos JAVA - NETBEANS

Objetivo: Aplicar a técnica de encapsulamento no sistema de gestão acadêmica

Prof. A. G. Silva. 13 de novembro de Prof. A. G. Silva INE5603 Introdução à POO 13 de novembro de / 1

LÓGICA DE PROGRAMAÇÃO (JAVA) VARIÁVEIS. Professor Carlos Muniz

RESPOSTA: import java.util.arraylist; import java.util.list; class CarrinhoDeCompras2 { List<Produto> produtos;

Pilha e Fila. Pilha em C. Definir o registro que representará cada elemento da pilha.

Java Standard Edition (JSE)

AULA TEÓRICA 3. Tema 4. Excepções Ø Tratamento de excepções

Template de classe. class vetor { int *arranjo; int limite; public: vetor(int=100); int & operator[ ](int n); };

01. [Sebesta, 2000] Defina exceção, manipulador de exceções, levantamento de uma exceção, desativação de uma exceção e exceção incorporada.

Capítulo 10. Tratamento de Exceções. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Programação Estruturada e Orientada a Objetos

Armazendando Senhas Com Funções de Hash

Laboratório de programação II

LINGUAGEM DE PROGRAMAÇÃO I

Herança (parte 2) Redefinição de métodos AULA 11

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Orientação a Objetos e Java

Transcrição:

Tratamento de Erros Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com

Agenda Introdução Try, catch, finally Unchecked Exceptions Como levantar exceções Boas práticas

O problema Calculadora numero1: int numero2: int resultado: int equacao: String lerdados() dividir() multiplicar() imprimir()

A implementação, o que pode dar errado? public class Calculadora { private int numero1; private int numero2; private int resultado; private String equacao; public void lerdados(){ Scanner scanner = new Scanner(System.in); System.out.println("Digite o dividendo:"); numero1 = Integer.parseInt(scanner.next()); System.out.println("Digite o divisor:"); numero2 = Integer.parseInt(scanner.next()); public void dividir(){ resultado = numero1 / numero2; equacao = numero1 + "/" +numero2 +" = "+resultado; public void multiplicar(){ resultado = numero1 * numero2; equacao = numero1 + "*" +numero2 +" = "+resultado; public void imprimir(){ System.out.println(equacao);

O cliente public static void main (String[] args) { Calculadora calculadora = new Calculadora(); calculadora.lerdados(); calculadora.dividir(); calculadora.imprimir();

Possibilidades de erros Se o divisor for 0 Se usuário digitar algo que não seja um número

Informações Trace de execução Tipo da exceção Mensagem Local

Como tratar esses erros de forma elegante? Exceções Seguem os mesmos princípios de OO Encapsulamento Abstração Uma exceção é Um evento Que ocorreu durante a execução do programa Que interrompeu o fluxo normal de execução Quando esse evento ocorre Cria-se um objeto do tipo Exception Esse objeto encapsula as informações da exceção Fornece métodos para manipular essas informações

Como tratar esses erros de forma elegante? Sendo assim, existem duas responsabilidades Alguém tem que criar o objeto Alguém pode tratar aquela exceção Exemplo: Se o usuário digitou algo que não tenha sido um número, pode-se pedir para ele digitar outro valor Se houve um erro ao ler um arquivo, pode ser por causa de algum lock, pode-se tentar em alguns instantes Chama-se o tratamento de exceções de Exception Handling E o tratador da exceção de Exception Handler

Importante É importante diferenciar o descobrimento do erro com o local onde o tratamento ocorre Em muitos casos, não é possível fazer nada muito útil no local onde o erro ocorre

Exemplo: identificando a origem dos erros public class Calculadora { private int numero1; private int numero2; private int resultado; private String equacao; public void lerdados(){ Scanner scanner = new Scanner(System.in); System.out.println("Digite o dividendo:"); numero1 = Integer.parseInt(scanner.next()); System.out.println("Digite o divisor:"); numero2 = Integer.parseInt(scanner.next()); public void dividir(){ resultado = numero1 / numero2; equacao = numero1 + "/" +numero2 +" = "+resultado; public void multiplicar(){ resultado = numero1 * numero2; equacao = numero1 + "*" +numero2 +" = "+resultado; public void imprimir(){ System.out.println(equacao);

Exemplo: onde tratar os erros? Possibilidade 01: Localmente

Exemplo: onde tratar os erros? Possibilidade 01: Localmente

Exemplo: onde tratar os erros? Possibilidade 01: Externamente

Exemplo: onde tratar os erros? Possibilidade 01: Externamente

Sintaxe para a captura de exceções em Java Se você quiser tratar a exceção utilize o comando try catch Sintaxe: try { // Lista de comandos em que a exceção pode ocorrer catch (<Tipo da exceção capturada> <identificador>){ // Código para o tratamento da exceção catch (<Tipo da exceção capturada> <identificador 2>){ // Código para o tratamento da exceção

Como funciona?

Tipos de Exceções

Tipos de Exceções Checked X Unchecked Vamos ao nosso código Nada nos obrigou a tratar as exceções que poderiam ocorrer Unchecked Exceptions

Tipos de Exceções Unchecked

Tipos de Exceções Mas em alguns casos, temos que obrigatoriamente lidar com as exceções PrintWriter outputstream = new PrintWriter( new FileWriter(nomeDoArquivo));

Criando suas próprias exceções Simples, basta herdar Para checked exceptions: public class MinhaExcecao extends Exception {... Para unchecked public class MinhaExcecao extends RuntimeException {...

Levantando Exceções Para retornar um valor normal usamos o return Para retornar uma exceção usamos o throw Exemplo: public void meumetodo throws MinhaExcecao {... throw new MinhaExcecao();

finally Bloco que é sempre executado Ocorrendo ou não a exceção Exemplo: try { objeto.metodoquelevantaexcecap(); catch (ExcecaoLevantada e) {... finally { comandos;

finally Muito utilizado para liberar recursos CleanUp Exemplo, fechando a stream de gravação de um arquivo: finally { if (out!= null) { System.out.println("Closing stream"); out.close; else { System.out.println("Stream not open");

Boas práticas Quando usar uncheked exceptions? Regra básica Se o seu cliente puder fazer alguma coisa para se recuperar do erro, não faça unchecked Caso contrário faça a sua exceção unchecked Não crie exceções se elas não adicionam nada Ao levantar múltiplas exceções, verifique se elas não significam a mesma coisa para o cliente

Fim