Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução...
Transcript of Excepções Conceito de Excepção Gestão estruturada de excepções Como utilizar a instrução...
![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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/1.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/2.jpg)
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 3: 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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/3.jpg)
Revisão
CódigoFonte
CompiladorCompilador
CódigoNativo
01001
códigoalgoritmoanálise aplicação
Det
ecçã
o e
Tra
tam
ento
de
Err
os
![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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/4.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/5.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/6.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/7.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/8.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/9.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/10.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/11.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/12.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/13.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/14.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/15.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/16.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/17.jpg)
17
Lançamento de ExcepçõesSintaxe:
1ª
2ª
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/18.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/19.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/20.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/21.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/22.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/23.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/24.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/25.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/26.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/27.jpg)
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.](https://reader038.fdocumentos.com/reader038/viewer/2022102814/552fc15f497959413d8e7332/html5/thumbnails/28.jpg)
Exemplo:
28
Simulador:
Criação de Excepções Próprias
Botão Amarelo