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

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

Tratamento de Exceções

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

Java para Desktop. Exceções JSE

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.

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

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ções. LPG II Java. Tratamento de Exceções. Conceito de Exceções. Exemplo

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

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Tratamento de Exceções. Julio Cesar Nardi

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

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. Java Avançado. Tratamento de Exceções. Conceito de Exceções. Exemplo

Controlando Erros com Exceções

Tratamento de Exceções em Java

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

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

Tratamento de Erros. Sérgio Luiz Ruivace Cerqueira

Programação Orientada a Objetos (DPADF 0063)

Programação Orientada a Objetos

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

Computação II Orientação a Objetos

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

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

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

Notas de Aula 09: Tratamento de exceções

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

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

Java Standard Edition (JSE)

Programação Orientada a Objetos

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

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

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

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

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. Manipulação de Exceções

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

Programação de Computadores II

Exceções. Criando suas exceções

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

1. Estude e implemente a classe Exemplo1 apresentada abaixo:

Tratamento de Exceções

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

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

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:

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

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.

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

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

Errors and exceptions

Tipos de dados e comandos POO

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

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

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

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

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

Laboratório de programação II

LINGUAGEM DE PROGRAMAÇÃO I

MCG126 Programação de Computadores II

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

Linguagens de Programação 8 Exceções

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.

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

Computação II (MAB 225)

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

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Strings e Arrays POO

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

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

Curso Profissional de Gestão e Programação de Sistemas Informáticos

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

Linguagem Java - Introdução

Estruturas de Controle

Transcrição:

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

Terminologia Definições: Exceção é a ocorrência de uma condição anormal durante a execução de um método Falha é a inabilidade de um método cumprir a sua função Erro é a presença de um método que não satisfaz sua especificação Tipicamente, a existência de um erro gera uma falha que resulta em uma exceção 2

Motivações para Exceções Existem duas motivações para exceções: 1) Um método pode detectar uma falha mas não estar apto a resolver sua causa, devendo repassar essa função a quem saiba 2) Se introduzirmos o tratamento de falhas ao longo do fluxo normal de código, podemos estar comprometendo muito a inteligibilidade 3

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 4

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 5

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 6

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 7

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."; 8

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; 9

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); 10

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 11

Hierarquia de Exceções Throwable Error Exception Runtime Exception IOException... 12

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 13

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 14

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); 15

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; 16

Estrutura try-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 17

Exemplo de try-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(); 18

Tratando Múltiplas Exceções try {... catch (Exception1 e1) {... catch (Exception2 e2) {... finally {... 19