excepções conceito de excepção gestão estruturada de excepções como utilizar a instrução...

28
Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso de excepções A classe Exception Criação de excepções próprias Lançamento de excepções

Upload: internet

Post on 22-Apr-2015

122 views

Category:

Documents


10 download

TRANSCRIPT

Page 1: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

Excepções

Conceito de Excepção

Gestão estruturada de excepções

Como utilizar a instrução Try… Catch

Como utilizar o bloco Finally

Directrizes para o uso de excepções

A classe Exception

Criação de excepções próprias

Lançamento de excepções

Page 2: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

Objectivos

Conhecer e utilizar os mecanismos de gestão estruturada de excepções do VB

•Definir excepção;

•Conhecer as principais excepções predefinidas do VB;

•Conhecer a sua sintaxe;

•Gerir erros de execução utilizando a nova rotina de tratamento de

erros “Try…Catch”;

•Utilizar as principais excepções predefinidas no VB;

•Saber quando deve implementar este método de gestão de erros;

•Reconhecer a utilidade da gestão estruturada de excepções;

•Conhecer e aplicar o conceito de lançamento de excepções, no

contexto do desenvolvimento de aplicações em VB.

Page 4: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

compilação/sintaxe

lógica

tempo de execução

Revisão

Tipos de errosem programação

Page 5: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

Introdução

– programa que se mantêm em execução mesmo nas situações em que surgem erros inesperados em modo run-time

– para tal o próprio programa (através de instruções especiais) é capaz de capturar tais situações de erro e realizar o seu adequado tratamento (correcção e recuperação) evitando que o programa termine

• O mecanismo que forma a base da robustez do código dos programas VB– o seu sistema de gestão estruturada de excepções

Programa robusto

Page 6: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

O conceito de excepção

Uma excepção (Exception) é

– um sinal gerado pela framework .NET (em tempo de execução) e que é

comunicado ao programa indicando a ocorrência de um erro recuperável

– é um evento que ocorre durante a execução de um programa que altera o fluxo

normal de execução das instruções

Exemplos: escrita em disco cheio ou ficheiros não existentes

Um erro (Error) é:

– uma situação para a qual nenhuma recuperação é possível, i.e., ocorrência de

um erro não recuperável

– O interpretador limita-se a enviar uma mensagem de erro e a terminar a

execução do programa

Page 7: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

A Classe Exception

ExceptionException

Eu não preciso de saber tudo-só onde encontraro que preciso

POO

Page 8: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

A Classe Exception

• Hierarquia de

classes de

excepções

(Exception é a

classe base)

• Todas as excepções

são instâncias da

respectiva classe de

Excepção

(Exception)

ExceptionException

Page 9: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

A Classe ExceptionExceptionException

Propriedades

Propriedade

Message Devolve uma mensagem de texto que descreve a excepção. Utilizar esta propriedade para recuperar informação sobre o porquê de se ter lançado uma excepção.

HelpLink Devolve ou define a ligação para um ficheiro de ajuda com mais informação sobre a excepção.

Source Devolve ou define o nome do objecto (ou aplicação) que deu origem à excepção.

Page 10: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

Gestão estruturada de excepções

• O mecanismo de excepções do VB permite definir:– quais as excepções que devem ser detectadas num dado contexto do

programa

– quais as acções que devem ser executadas em tais situações, ou seja, quando é lançada uma excepção pelo sistema

• O mecanismo de captura e tratamento de excepções utiliza as palavras-chave:

Try | Catch | Finally

Page 11: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

Gestão estruturada de excepções - Sintaxe

Page 12: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

Como utilizar a instrução Try… Catch

Try• contém a secção de código que desejamos monitorizar. • bloco de código que pode originar excepções

Catch

• identifica a excepção que pode ocorrer no bloco try,• é seguida por um bloco de instruções a executar para recuperar da excepção• podemos ter um try seguido de n catch (associações try-catch de 1 para n)

Exemplo:

Page 13: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

Como utilizar o bloco Finally

Exemplo:

• Secção opcional; • se presente, é sempre executada

Page 14: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

Vantagens

Separação do código para tratamento de erros do código normal da aplicação

Facilita: Leitura Depuração Manutenção do código

Agrupamento e diferenciação de erros por tipo

Page 15: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

Directrizes de utilização

• Não utilizar a gestão estruturada de excepções para erros que se produzem de modo rotineiro

• Ordenar os blocos Catch desde o mais específico ao mais genérico

• Esta técnica controla a excepção específica antes de passar a um bloco Catch mais genérico.

Page 16: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

16

Lançamento de Excepções• Suspensão da execução da aplicação determinada pelo programador num determinado ponto do código;

• utilizado quando são quebradas as regras de negócio ou da aplicação impostas pelo SI que se pretende descrever.

Page 17: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

17

Lançamento de ExcepçõesSintaxe:

Palavra-chave Throw

[ ]

[ ]

Page 18: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

18

Lançamento de ExcepçõesExemplo1:

Exemplo2:

Page 19: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

19

Lançamento de ExcepçõesAplicação prática do Exemplo1:

Page 20: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

20

Lançamento de Excepções

Olá

Ocorre uma excepção!

Aplicação prática do Exemplo1:

Page 21: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

21

Aplicação prática do Exemplo1:

Lançamento de Excepções

- 12

Não ocorre excepção!

Page 22: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

22

Exemplo3: Classe JogadorLançamento de Excepções

Page 23: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

23

Criação de Excepções Próprias

Sintaxe:

ClasseException - classe Exception ou uma das suas classes derivadas: ApplicationException, IOException,

SystemException,...ApplicationException

Page 24: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

24

Criação de Excepções Próprias

Sintaxe (tratamento):

.

Terá um Catch próprio!!!

Page 25: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

25

Criação de Excepções Próprias

Excepção própria/personalizada é:

• Classe criada pelo programador que deriva da classe Exception ou de uma das suas classes derivadas.

• permite usufruir de todas as funcionalidades da classe base e acrescentar-lhe novas funcionalidades.

Page 26: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

26

Exemplo4: Cartão Amarelo

Criação de Excepções Próprias

Page 27: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

27

Criação de Excepções Próprias

Classe Jogador

Exemplo:

Page 28: Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução Try… Catch Como utilizar o bloco Finally Directrizes para o uso

Exemplo:

28

Simulador:

Criação de Excepções Próprias

Botão Amarelo