Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 07 de Junho de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
28 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Artigos]  Try..Except..Finally - Final
Publicado por ActiveDelphi : Segunda, Outubro 15, 2007 - 07:56 GMT-3 (3509 leituras)
Comentários 1 Comentário   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
João Marcos Olá amigos leitores! Esse é o último artigo e vou encerrar o assunto sobre "Tratamento de Exceções". Caso você não tenha lido os artigos anteriores peço que não continue esse artigo sem ler. Exceto se estiver bem inteirado sobre Tratamento de Exceções.

Se preferir, clique aqui para ver o primeiro artigo e clique aqui para ver o segundo sobre Tratamento de Exceções.

Nesse artigo apenas vou adicionar um complemento referente aos artigos anteriores, mostrando outros exemplos.

O Download do Aplicativo de Testes com os fontes mostrados neste e no artigo anterior poderão ser baixados pelo link no final do artigo.

Observação: Dessa vez não entrarei em detalhes de exceções como por exemplo: exceções da RTL (Run Time Libray) ou da VCL (Visual Component Library), mesmo porque o Delphi está sendo atualizado constantemente, sendo assim, teria que especificar quais exceções pertencem a qual versão e etc.

Exceções Silenciosas

Com o comando Abort é possível gerar Exceções Silenciosas, ou seja, que não exibem mensagem alguma, por exemplo:


Figura 1 - Exceção Silenciosa - Abort

Uma das principais vantagens de se utilizar o Abort é que, como ele gera uma Exceção propriamente dita, a execução do código pára quando ele é chamado, ou seja, se temos uma procedure que chama outra procedure e nesta última colocamos o comando exit;, a segunda procedure será encerrada neste ponto, porém, ao retornar à primeira, o código continua sendo executado. Se no lugar no exit colocarmos um abort;, todo a execução é interrompida, fazendo com que o programa pare sem sequer retornar à primeira procedure.

Manipulando Exceções em TApplication

Quando ocorre uma exceção e essa não é tratada usando Try, Except e Finally, será passada ao manipulador de exceções do objeto Application, mais exatamente no Evento OnException. Até o Delphi 4, os usuários precisavam criar métodos para utilizar no evento OnException do objeto Application. A partir do Delphi 5, podemos codificar o Evento OnException do Objeto ApplicationEvents da paleta Additional. Ele pode ser utilizado para manipular as exceções do sitema! Veja um exemplo de como criar exceções personalizadas usando ApplicationEvents:


Figura 2 - Componente ApplicationEvents da paleta Additional, nas Versões anteriores e recentes do Delphi

Passo-a-Passo

Abra uma nova aplicação e nela insira um botão (TButton da Paleta Standard) e um Application Events (TApplicationEvents da Additional). Pressione F12 e vá até a seção type e insira a linha EMinhaExcecao = class (Exception);, conforme a figura a seguir.


Figura 3 - Criando um tipo personalizado de exceção

Após isso, selecione o componente ApplicationEvents que foi adicionado ao form, dê um duplo clique no evento OnException e cole o código abaixo:

  if (E is EMinhaExcecao) then
    Application.MessageBox('Minha Exceção está personalizada', 
      'Tratamento de Exceções', MB_OK + MB_ICONINFORMATION + MB_DEFBUTTON2);

Esse código nada mais é do que minha exceção personalizada da forma como quero exibir quando acontecer este tipo de exceção, o EMinhaExcecao. É claro que nesse caso nós provocaremos essa exceção, porque senão ela nunca acontecerá por si só. Para isso, no evento OnClick do botão faça:

  raise EMinhaExcecao.Create(EmptyStr);

Assim estaremos provocando a exceção quando o botão for clicado e a seguinte mensagem vai aparecer:


Figura 4 - Mensagem Personalizada para o Tipo de Exceção Criado

Usando o recurso acima é possível tratar as exceções de forma global, personalizando todas as possíveis exceções de seu projeto.

Quero aproveitar para pedir desculpas a Marku Vinicius Da Silva, referente a exceções específicas do ADO. Eu não consegui encontrar nenhum material sobre exceções desses componentes. Mas como já nos falamos anteriormente, você pode usar E: Exception para qualquer tipo de exceção que ocorra, claro que isso pode não ser totalmente eficaz, mas ajudará.

Se alguém tiver um material diferente do que foi apresentado aqui sobre exceções, mande para mim por e-mail.

Clique aqui para baixar os exemplos com fontes.

João Marcos
Contato: jsakalauska@gmail.com



Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.


por: acr : Nov 28, 2007 - 09:00
(Informações sobre o membro | Enviar uma mensagem) http://
Parabéns ao autor pela clareza das explicações e respeito à lingua portuguesa, o que é uma raridade entre programadores.
  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados