Capítulo 5. Tratamento de excepções



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

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:

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

Tratamento de Exceções. Alberto Costa Neto DComp - UFS

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

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

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel

Num sistema de objectos distribuídos, dois conceitos são fundamentais.

Sistemas Paralelos e Distribuídos /2004 Curso: Matemática /Informática Sistemas Distribuídos /2004 Curso: Ensino da Informática


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

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

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

O tratamento de erros em Java

INTRODUÇÃO 12. DOCUMENTAÇÃO INTRODUÇÃO INTRODUÇÃO

Programação de Computadores - I. Profª Beatriz Profº Israel

NOVIDADES DO JAVA PARA PROGRAMADORES C

Curso Java Starter. 1

Polimorfismo. Prof. Leonardo Barreto Campos 1

1.6. Tratamento de Exceções

Programação Na Web. Linguagem Java Parte II. break com o nome do bloco. Sintaxe. Nome do bloco. Termina o bloco. António Gonçalves ...

UNIVERSIDADE FEDERAL DO PARANÁ

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)

Manual de digitação de contas Portal AFPERGS

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

Engenharia de Software III

Agendamento para Importação de Notas Fiscais

Especificação do 3º Trabalho

Java. Marcio de Carvalho Victorino

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

AMBIENTE DE PROGRAMAÇÃO PYTHON

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs. Aplicações dinâmicas para a Web:

Processos e Threads (partes I e II)

Guia do usuário para utilização do sistema WCRC3 Central de Informações do Registro Civil da Arpen SP Gravação e envio dos registros

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

Tarefa Orientada 10 Obter informação a partir de uma tabela

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

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Especificação de Requisitos

PROGRAMAÇÃO JAVA. Parte 1

Conceitos básicos da linguagem C

Parâmetros LOG CONTABILIZAÇÃO

3 Classes e instanciação de objectos (em Java)

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

2 Diagrama de Caso de Uso

Agentes Inteligentes segundo o Chimera

Tarefa Orientada 15 Manipulação de dados

Actualização. Versão 5.3.1

Introdução ao Excel. Principais fórmulas de Cálculo

Java 2 Standard Edition Como criar classes e objetos

Reconhecer a estrutura de um sistema operativo. Definir um plano de instalação de um servidor de rede local.

Arquitetura de Rede de Computadores

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 11

Curso de Iniciação ao Access Basic (I) CONTEÚDOS

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

Objetivos. Página - 2

DEFINIÇÃO DE MÉTODOS

Guia de Fatores de Qualidade de OO e Java

Bases de Dados 2007/2008. Aula 9

Sistema de Bolsas - CGFC

Universidade da Beira Interior. Sistemas Distribuídos

Programação Orientada a Objetos Herança Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

Capítulo 4. Packages e interfaces

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education

file:///c:/documents and Settings/Mauro/Desktop/Manuais_e_cursos/m...

ATUALIZAÇÃO ATÉ 14/02/2007.

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

Sistemas Operacionais Processos e Threads

Arquitetura de Computadores. Tipos de Instruções

FBV - Linguagem de Programação II. Um pouco sobre Java

DESENVOLVIMENTO DE SISTEMAS SOFTWARE FASE 1 GRUPO 10. Vítor Martins Rui Fonseca David Barbosa Ricardo Boas 47023

Solutions for Information Technologies. BIS-Navegador. Oracle

Prototype, um Design Patterns de Criação

Bacharelado em Ciência e Tecnologia BC Processamento da Informação Teoria Arquivos Prof. Edson Pinheiro Pimentel edson.pimentel@ufabc.edu.

Programação Orientada a Objetos com Java. Prof. Júlio Machado julio.machado@pucrs.br

Relatório SHST

9 Comandos condicionais

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

Usuário deve preencher o código do Registro da sua Empresa (composto de 4 dígitos), sua senha, e teclar o botão ENVIAR.

THREADS EM JAVA. George Gomes Cabral

Manual de Cobrança. Código Nome De Até 1 Jose da Silva a Jz 2 Ana Maria k Pz 3 Marcelo q zz

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Programação por Objectos. Java

Tarefa Orientada 18 Procedimentos armazenados

Linguagem de Programação III

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Projeto SIGA-EPT. Manual do usuário Módulo Requisição de Almoxarifado SISTEMA INTEGRADO DE GESTÃO ACADÊMICA

Capítulo 13. Encapsulamento. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Sistemas Operativos 2005/2006. Arquitectura Cliente-Servidor Aplicada A Uma Biblioteca. Paulo Alexandre Fonseca Ferreira Pedro Daniel da Cunha Mendes

Transcrição:

Capítulo 5. Tratamento de excepções 1/20

Índice Indice 5.1 - Excepção 5.2 - Try-Catch-Finally 5.3 - Escalar excepção não tratada 5.4 - Como lançar excepções 2/20

Índice 5.1 Excepção 5.1 - Excepção 5.2 -- Try--Catch Catch--Finally 5.3 -- Escalar excepção não tratada 5.4 -- Como lançar ar excepções 3/20

5.1 Excepção Excepção É um evento que ocorre ao ser identificada uma condição que impede a execução normal do programa A execução de um programa pode parar inesperadamente devido a um erro de runtime Erro de runtime pode ter várias causas: -Erro de lógica: Divisão por zero, acesso fora dos limites de um array, leitura de número com formato inválido -Erro físico: Ficheiro removido, ficheiro sem permissões, erro de comunicações, Uma excepção é um objecto da classe Exception criado pelo JRE como resposta a um erro de runtime: 4/20

5.1 Excepção Excepção O programa abaixo não tem erros de sintaxe. Provoca uma divisão por zero em temo de execução Esta instrução provoca a divisão por zero Excepção é uma instanciação de um objecto que pertence à classe Exception e é instanciado quando ocorre um erro de runtime Exception in thread "main" java.lang.arithmeticexception: / by zero Java Result: 1 at Capitulo5.TryCatch01Ficha6.main(TryCatch01Ficha6.java:14) 5/20

Índice 5.2 Try Catch Finally 5.1 -- Excepção 5.2 - Try-Catch-Finally 5.3 -- Escalar excepção não tratada 5.4 -- Como lançar ar excepções 6/20

5.2 Try-Catch-Finaly Os blocos Try Catch...Finally Permitem tratar os erros em tempo de execução e o retomar do controlo do programa pelo programador -A instrução suspeita fica num bloco try.o corpo try é executado até que uma excepção seja lançada. Caso nenhuma excepção seja lançada, o try termina normalmente. -Definir um bloco catch para cada excepção que pode aparecer -Cada bloco catch vai tratar do respectivo erro de runtime -No bloco Finally colocamos o código que queremos que seja sempre executado quer haja ou não excepção e, identifica o objecto instanciado (Exception) Provoca divisão por zero Trata divisão por zero Se a excepção não fosse tratada, esta instrução não seria executada 7/20

5.2 Try-Catch-Finaly Os blocos Try...Catch...Finally A classe Exception é derivada da classe Trowable -A classe exception possui subclasses cujas propriedades se adaptam ao erro específico. -Isto permite ter 1 bloco try com vários blocos catch onde cada um trata um erro específico Trata qualquer erro (intanciada num catch) Tratam erros mais específicos (intanciadas em blocos catch) -Os blocos catch são percorridos sequencialmente até encontrar o erro. Se nenhum se ajustar ao erro mais específico ocorrido o programa pára com erro de execução. -Por esse motivo no último catch deve ser colocado um objecto da classe Exception 8/20

5.2 Try-Catch-Finaly Os blocos Try...Catch...Finally Exemplo 1 Formato de número inválido Dos vários blocos, este trata a excepção Instruções que são sempre executadas quer haja ou não excepções Resultado: NumberformatExcepion Bloco Finally Fim do programa 9/20

5.2 Try-Catch-Finaly Os blocos Try...Catch...Finally Exemplo 2 Acesso a posição fora dos limites do array O erro não encaixa em nenhuma das escepções. É tratado pelo objecto Exception Resultado: Bloco Excepion Bloco Finally Fim do programa O erro acima encaixa na classe: ArrayIndexOutOfBoundsException Exemplos de outras excepções pré definidas: IndexOutOfBoundsException NegativeArraySizeException IOException SQLException etc... 10/20

Índice 5.3 Escalar excepção não tratada 5.1 -- Excepção 5.2 -- Try--Catch Catch--Finally 5.3 - Escalar excepção não tratada 5.4 -- Como lançar ar excepções 11/20

5.3 Escalar excepção não tratada Escalar excepções não tratadas Em Java as excepções não tratadas são escaladas para o nível acima -Escalar significa passar o problema para o chefe. -O nível acima (chefe) é o bloco de código chamador A excepção escala até ao bloco main(). Se aí não for tratada a execução do programa pára. -Neste caso o JRE devolve um código de erro ao sistema operativo Quando ocorre uma excepção: -A primeira verificação é tratada pelo método onde o bloco está incluido -Se não houver tratamento, a excepção é enviada para o método que a chamou e assim sucessivamente. -Se nunca for tratada, ao chegar a main() o programa é interrompido e o utilizador informado com uma mensagem de erro. 12/20

5.3 Escalar excepção não tratada Exemplo Excepção não é tratada e portanto é escalada para o método main(). (Chamador) O bloco chamador faz o tratamento da excepção Imprime o conteúdo da pilha de execução dandonos informação sobre a sequência de invocação de métodos Resultado: Programa não pára pois a excepção é tratada java.lang.arithmeticexception: / by zero at Capitulo5.ExcepcaoEscalada.metodoComErro(ExcepcaoEscalada.java:4) at Capitulo5.ExcepcaoEscalada.main(ExcepcaoEscalada.java:8) Fim de programa Linha 4 do métodocomerro Linha 8 demain 13/20

5.3 Escalar excepção não tratada Escalamento de excepções com a directiva Throws Existem dois tipos de métodos no que diz respeito a tratamento de excepções: -Os métodos com baixa probabilidade de gerar excepções (como os estudados anteriormente). Neste caso o tratamento da excepção é opcional. (unchecked exception) -Os métodos com alta probabilidade de gerar excepções (como por exemplo os que operam sobre dispositivos de entrada / saída IO). Neste caso o tratamento da excepção é obrigatório. (checked exception) O tratamento de excepções pode ser feito por : -Try-Catch (como visto até agora) Escalamento com Throws -Directiva throws -> Neste caso não se trata a excepção. Esta directiva limita-se a escalá-la Utilizando throws tranquilizamos o compilador dizendo que vamos tratar a excepção escalando-a, mas na realidade não a estamos a tratar 14/20

5.3 Escalar excepção não tratada Escalamento de excepções com a directiva Throws Exemplo Obrigatório devido ao método read(). Faz o tratamento da excepção escalando-a. Informa o compilador que esta vai ser tratada. Método read() pode lançar uma IOException que é uma checked exception Alternativa Em vez de escalar, tratar a excepção obrigatória no bloco try...catch 15/20

Índice 5.4 Como lançar excepções 5.1 -- Excepção 5.2 -- Try--Catch Catch--Finally 5.3 -- Escalar excepção não tratada 5.4 - Como lançar excepções 16/20

5.4 Como lançar excepções Lançamento de excepção pré-definida: Instrução throw A instrução throw permite ao programador simular a ocorrência de um erro de runtime O programador pode provocar erros de runtime em qualquer altura do programa. Atenção: Não confundir throw com throws -throw cria uma excepção enquanto throws trata uma excepção A divisão de a/b Lança sempre uma excepção A excepção é tratada num bloco catch e o programa prossegue até ao fim Resultado: 1 java.lang.arithmeticexception: Fui eu que lancei at Capitulo5.Throw01.main(Throw01.java:12) Fim de programa 17/20

5.4 Como lançar excepções Criação de excepções O programador pode criar as suas próprias excepções (a partir da classe Exception) -Exemplo1 : Cria MinhaExcepcao -O lançamento destas excepções pode ser forçado recorrendo a throw e depois serão tratadas recorrendo a try...catch ou throws. Lança MinhaExcepcao Trata MinhaExcepcao Resultado: Criado objecto de minha excepção! Responsável: Data: Executa catch Versão com MinhaExcepcao Pág.: Fim de programa 18/20

5.4 Como lançar excepções Criação de excepções Exemplo2 -Lançamento de MinhaExcepção, mas em vez de a tratar escala o problema com throws escala MinhaExcepcao Lança MinhaExcepcao Programa termina já que a excepção nunca chega a ser tratada. Resultado: Criado objecto de minha excepção! Exception in thread "main" Capitulo5.MinhaExcepcao: Criar objecto de MinhaExcepcao at Capitulo5.MinhaExcepcaoThrows.main(MinhaExcepcaoThrows.java:6) Java Result: 1 19/20

FIM 20/20