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

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

Tratamento de Exceções

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

Java para Desktop. Exceções JSE

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

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

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

O tratamento de erros em Java

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

Tratamento de Exceções

TRATAMENTO DE EXCEÇÕES

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

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

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

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

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

Tratamento de Exceções. Julio Cesar Nardi

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

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

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Controlando Erros com Exceções

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

Tratamento de Erros. Sérgio Luiz Ruivace Cerqueira

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

Programação Orientada a Objetos

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

Computação II Orientação a Objetos

Tratamento de Exceções em Java

Programação Orientada a Objetos (DPADF 0063)

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

Mecanismo de exceções em Java

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

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

Computação II Orientação a Objetos

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

Notas de Aula 09: Tratamento de exceções

Java Standard Edition (JSE)

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

Programação Orientada a Objetos

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

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

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

Tratamento de Exceções

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

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

Tratamento de Exceções. Prof. Leonardo Barreto Campos 1

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

Programação Orientada a Objetos II

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

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

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

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

Exceções. Criando suas exceções

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

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

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

1. Estude e implemente a classe Exemplo1 apresentada abaixo:

Programação de Computadores II

O problema da herança múltipla e o uso de Interfaces. Herança múltipla. Interfaces. Definindo Interfaces 30/11/2016

Programação Orientada a Objetos. Manipulação de Exceções

Tratando exceções em Java

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

Programação Orientada a Objetos JAVA - NETBEANS

Tratamento de Exceções

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:

Paradigmas da Programação PPROG. Linguagem JAVA. Exceções. (Livro Big Java, Late Objects Capítulo 7) Nelson Freire (ISEP DEI-PPROG 2015/16) 1/45

Errors and exceptions

Tipos de dados e comandos POO

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

Tratamento de Exceções e I/O de Arquivos

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

Linguagens de Programação Conceitos e Técnicas. Exceções

Laboratório de programação II

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.

MCG126 Programação de Computadores II

A R R A Y S E E X C E P T I O N S P R O F. M E. H É L I O E S P E R I D I Ã O

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

LINGUAGEM DE PROGRAMAÇÃO I

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

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

Linguagens de Programação 8 Exceções

Computação II (MAB 225)

Python: Exceções, Iteradores e Geradores. Claudio Esperança

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Strings e Arrays POO

Tipos, Literais, Operadores

Tipos, Literais, Operadores

BCC Programação Orientada a Objectos(POO) Departamento de Computação - UFOP

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Java First-Tier: Aplicações. Herança: Simples Múltipla. Orientação a Objetos em Java (III) Problemas de Herança Múltipla.

Linguagem Java - Introdução

Estruturas de Controle

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

Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010

Transcrição:

Programação Java Tratamento de Exceções Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Motivações para Exceções Um método pode detectar uma falha mas não estar apto a resolver sua causa, devendo repassar essa função a quem saiba Se introduzirmos o tratamento de falhas ao longo do fluxo normal de código, podemos estar comprometendo muito a inteligibilidade 2 1

Exceções Diz-se que uma exceção é lançada para sinalizar alguma falha O lançamento de uma exceção causa uma interrupção abrupta do trecho de código que a gerou O controle da execução volta para o primeiro trecho de código (na pilha de chamadas) apto a tratar a exceção lançada 3 Suporte a Exceções As linguagens OO tipicamente dão suporte ao uso de exceções Para usarmos exceções precisamos de: uma representação para a exceção uma forma de lançar a exceção uma forma de tratar a exceção 4 2

Exceções em Java Java dá suporte ao uso de exceções: são representadas por classes são lançadas pelo comando throw são tratadas pela estrutura try-catch-finally De modo geral, um método que lance uma exceção deve declarar isso explicitamente Para uma classe representar uma exceção, ela deve pertencer a uma certa hierarquia 5 Exemplo de Uso Considere a classe: public class Calc { public int div(int a, int b) { return a/b; O método div, se for chamado com b igual à zero, dará um erro. Esse erro poderia ser sinalizado através de uma exceção 6 3

Modelando uma Exceção Vamos, então, modelar uma exceção que indica uma tentativa de divisão por zero: public class DivByZero extends Exception { public String tostring() { return "Division by zero."; 7 Lançando uma Exceção Agora vamos fazer com que o método div lance a exceção que criamos: public class Calc { public int div(int a, int b) throws DivByZero { if (b == 0) throw new DivByZero(); return a/b; 8 4

Tratando uma Exceção Podemos, agora, utilizar o método div e tratar a exceção, caso esta ocorra: Calc calc = new Calc(); try { int div = calc.div(x, y); System.out.println(div); catch (DivByZero e) { System.out.println(e); 9 Tipos de Exceções em Java Java possui dois tipos de exceções: Checked Exceptions são exceções que devem ser usadas para modelar falhas contornáveis. Devem sempre ser declaradas pelos métodos que as lançam e precisam ser tratadas (a menos que explicitamente passadas adiante) Unchecked Exceptions são exceções que devem ser usadas para modelar falhas incontornáveis. Não precisam ser declaradas e nem tratadas 10 5

Hierarquia de Exceções Throwable Error Exception Runtime Exception IOException 11 Checked Exceptions Para criarmos uma classe que modela uma checked exception, devemos estender a classe Exception Essa exceção será sempre verificada pelo compilador para garantir que seja tratada quando recebida e declarada pelos métodos que a lançam 12 6

Unchecked Exceptions Para criarmos uma classe que modela uma unchecked exception, devemos estender a classe Error ou RuntimeException Esse tipo de exceção não será verificado pelo compilador Tipicamente não criamos exceções desse tipo, elas são usadas pela própria linguagem para sinalizar condições de erro 13 Repassando Exceções Se quiséssemos usar o método div sem tratar a exceção, deveríamos declarar que a exceção deve ser passada adiante: public void f() throws DivByZero { Calc calc = new Calc(); int div = calc.div(a,b); System.out.println(div); 14 7

Tratando e Repassando Exceções Mesmo tratada, a exceção pode ser repassada: public void f() throws DivByZero { Calc calc = new Calc(); try { int div = calc.div(x, y); System.out.println(div); catch (DivByZero e) { System.out.println(e); throw e; 15 Estrutura try-catch catch-finally Como apresentado, usamos try-catch para tratar uma exceção. A terceira parte dessa estrutura, finally, especifica um trecho de código que será sempre executado, não importando o que acontecer dentro do bloco try-catch Não é possível deixar um bloco try-catchfinally sem executar sua parte finally 16 8

Exemplo de try-catch catch-finally void readfile(string name) throws IOException { FileReader file = null; try { file = new FileReader(name); // lê o arquivo catch (Exception e) { System.out.println(e); finally { if (file!= null) file.close(); 17 Tratando Múltiplas Exceções try { catch (Exception1 e1) { catch (Exception2 e2) { finally { 18 9