Tratamento de Exceções

Documentos relacionados
TIC - Programação Visual

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

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Tratamento de Exceções em Java

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

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

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

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

Conceitos de Programação Orientada a Objetos

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

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

Linguagens de Programação Conceitos e Técnicas. 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.

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

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

Tratamento de Exceções

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

Programação Orientada a Objetos

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

Programação Orientada a Objetos

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

Semântica de Referência e Vetores / Matrizes

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.

Estruturas de Repetição

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

Linguagens de Programação 8 Exceções

Introdução a Linguagem

Lista de Exercícios Estruturas: Linear, Condicional e Exclusão Múltipla Algoritmos e Linguagens de Programação

Sistemas Operacionais. Interrupção e Exceção

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

Estrutura de Exclusão Múltipla

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

Mecanismo de exceções em Java

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

Linguagens de Programação

Linguagem e Técnicas de Programação

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:

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

Fluxogramas. Leandro Tonietto ago-09

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

Tratamento de Erros. Sérgio Luiz Ruivace Cerqueira

Programação Visual TIC 3PA. Lista de Exercícios 01 - B

Introdução à Tecnologia Java 02/2012. Java Aula 06. Banco de Dados Exemplo com JTable 19/09/2012. Celso Olivete Júnior.

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

PRIMEIROS PASSOS COM PYTHON. Prof. Msc. Luis Filipe Alves Pereira 2015

1.6. Tratamento de Exceções

Computação II (MAB 225)

Programação Visual TIC - 3PA. Lista de Exercícios 01

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga

Introdução aos Sistemas Operacionais

Ambiente de desenvolvimento

Instituto Superior de Engenharia de Lisboa

Java. PUC-MG Prof.ª Kecia Aline Marques Ferreira

Linguagem C: Introdução

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

CP Introdução à Informática Prof. Msc. Carlos de Salles

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Programação Orientada a Objetos - 3º semestre AULA 01 Prof. André Moraes

Programação Estruturada e Orientada a Objetos. Tratamento de Exceções

Curso de Introdução à Liguagem de. Grupo PET-Tele. Universidade Federal Fluminense. July 16, 2012

Estruturas de Controle

Olá pessoal, Hoje vamos entender os conceitos sobre linguagem de programação. Definição, tipos de linguagens e as linguagens mais utilizadas

SSC510 Arquitetura de Computadores 1ª AULA

Desenvolvimento de programas. Análise do problema. Análise do problema. Análise do problema. Desenvolvimento do algoritmo. Codificação do programa

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

Programação: Vetores

Conceitos básicos de programação

1 Da aula teórica ao Java

Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza

Conceitos Básicos da Linguagem C++ Prof. Leonardo Barreto Campos 1

Unidade Central de Processamento 2. Registradores

Gabriel Giorisatto De Angelo Luiz Otávio Gerhardt Fernandes

Tipos, Literais, Operadores

Arquivos continuação. Profa. Thienne Johnson EACH/USP

Introdução a Linguagem

Estrutura do programa

Linguagens de Programação

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Linguagem C++ Estruturas de controle Parte II Estruturas de repetição

Capítulo 7. Expressões e Sentenças de Atribuição

Array em Java. Figura 1 - Exemplo de um array de inteiros

Programação de Computadores:

JAVA. Professor: Bruno Toledo

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

Erros, exceçõ. ções e asserçõ

Linguagens de Programação Classificação

Construtores. Introdução

Computação I (MAB120) DCC/UFRJ

Questão 1. Nome para o arquivo fonte questao1.c

PROGRAMAS BÁSICOS EM C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia

Escola Superior de Gestão e Tecnologia. Tratamento de Exceções

EXERC EXAME DISCIPLINA: ALG ESTRUTURA DE DADOS I

Transcrição:

Tratamento de Exceções Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 10 Tratamento de Exceções 1

Conceito Robustez: capacidade de um software continuar seu processamento mesmo sob condições anormais; Problemas: Como prevenir-se de erros em tempo de execução? Como prevenir-se de situações anormais? Exemplos de situações anormais: Divisão por zero, fim de arquivo, overflow, utilização de um objeto não instanciado, acesso a um índice inválido de um vetor. Unidade 10 Tratamento de Exceções 2

Exceção É um evento ocorrido durante a execução normal de um programa que desvia o fluxo normal de execução; É uma condição provocada por uma situação excepcional, que requer uma ação específica imediata. (Varejão, 2004) Unidade 10 Tratamento de Exceções 3

Mecanismo para Tratar Exceções Existem linguagens de programação que não possuem tais mecanismo. Como por exemplo: Linguagem C e Linguagem Pascal; Neste caso o programador deve produzir código para fazer o tratamento das possíveis exceções. Exemplo: if(x!= 0) else res = y / x; printf( Erro de divisão por zero! ); Unidade 10 Tratamento de Exceções 4

Mecanismo para Tratar Exceções Por outro lado, existem linguagens que possuem tais mecanismos. Como: Delphi, C#, Java e etc.; Benefícios: Diminuição da sobrecarga do texto do programa; Maior comodidade, para o programador, no tratamento das condições anormais. Unidade 10 Tratamento de Exceções 5

Exemplo de Exceções em Java NullPointerException ocorre quando a operação realizada gera um acesso a uma área não alocada (nula); IndexOutOfBoundException ocorre quando se tenta acessar um índice de um vetor que está fora de seus limites. Unidade 10 Tratamento de Exceções 6

Lançamento de Exceções O lançamento (ou sinalização) de exceções pode ser realizado da seguinte forma: Automaticamente: o próprio mecanismo existente na linguagem é o responsável por lançar a exceção. Pode ocorrer em qualquer ponto do programa passível de geração de situação anormal. Exemplo: o usuário do software entra com um valor do tipo string num campo que espera um valor do tipo float. Explicitamente: o programador escreve código para lançar uma possível exceção e consequentemente capturá-la. Unidade 10 Tratamento de Exceções 7

Lançamento de Exceções Em casos específicos um programador pode fazer o lançamento de exceções que não são tratadas pela JVM; O exemplo a seguir mostra um lançamento de exceção explícito em Java. Para tal, emprega-se o comando throw; throw new Exception(); Unidade 10 Tratamento de Exceções 8

Tratamento de Exceções Exceções podem ser tratadas a partir de trechos de códigos que tomam determinadas atitudes quando da ocorrência da anormalidade; Em Java para tratar uma exceção usa-se a instrução try: A instrução try é composta por três blocos: bloco try, bloco catch e o bloco finally. (Facultativo.) Unidade 10 Tratamento de Exceções 9

Exemplo Exemplo.pdf Unidade 10 Tratamento de Exceções 10

Tratamento de Exceções No exemplo anterior a cláusula catch(numberformatexception x) captura exceções de formatação numérica; A cláusula catch(arithmeticexception y) captura exceções ocorridas em operações aritméticas e a Cláusula catch(exception z) captura qualquer tipo de exceção ocorrida dentro da instrução try; Os comandos dentro dos blocos catch são o tratamento das possíveis exceções; Já as variáveis x, y e z, cada qual, contém a sua respectiva exceção no idioma da linguagem de programação, ou seja, o inglês, mais os detalhes técnicos da mesma. Unidade 10 Tratamento de Exceções 11

Propagação de Exceções Quando uma exceção ocorre a JVM busca pela cláusula catch associada ao seu tipo. A sequência para realização da busca é a que aparece no código; Quando uma exceção não é tratada no bloco em que ocorreu, ela é propagada para o bloco mais externo; No caso de chamada de métodos, é propagada para o método chamador. Unidade 10 Tratamento de Exceções 12

Propagação de Exceções Se o bloco ou método para o qual a exceção foi propagada não fizer seu tratamento, então a exceção continua sendo propagada; Se a exceção chegar ao método principal (main) e também não for tratada, então o programa é abortado. Unidade 10 Tratamento de Exceções 13

Relançamento de Exceções Em alguma situações, pode ser necessário que o local onde ocorreu a exceção a trate de maneira parcial, deixando o restante para blocos mais externos; Neste caso, utiliza-se o recurso de relançamento de exceções. Unidade 10 Tratamento de Exceções 14

Exemplo... try{ } try{ // Aqui pode ocorrer uma exceção do tipo IOException. } catch(ioexception e){... // Tratamento parcial. throw e; // Relançamento da exceção. } catch(ioexception e){... // Restante do tratamento. } Unidade 10 Tratamento de Exceções 15

Continuação após o Tratamento de Exceções Em algumas situações pode ser necessária a execução de um conjunto de comandos, independentemente de ter ocorrido uma exceção na instrução try; A cláusula finally de Java provê este recurso; Em geral, este recurso é utilizado quando deseja-se restabelecer o estado de algum objeto de forma independente da ocorrência e da propagação de exceções; Exemplo: Encerramento conexões com banco de dados ou fechamento de arquivos, quando houver a ocorrência de determinadas exceções. Unidade 10 Tratamento de Exceções 16

Continuação após o Tratamento de Exceções É possível a existência de um bloco try sem um bloco catch. Mas não é possível existir uma instrução try sem, pelo menos, um bloco catch ou um bloco finally; Havendo um bloco finally na instrução try e independente do que aconteça, o código dentro do bloco finally sempre será executado. Unidade 10 Tratamento de Exceções 17

Exemplos try{... // Código qualquer.... } finally{... // Código qualquer.... } try{ // Código qualquer. } catch(exception e){ // Código qualquer. } finally{ // Código qualquer. } Unidade 10 Tratamento de Exceções 18

Bibliografia DEITEL, H. M.; DEITEL, P. J. Java Como Programar; tradução Edson Furmankiewicz; revisão técnica Fábio Lucchini. 6a. ed., São Paulo: Pearson, 2005. FERREIRA, Kecia Aline Marques. Slides da disciplina de Programação de Computadores II. CEFET-MG, 2009. Unidade 10 Tratamento de Exceções 19