Buscar

Tratamento de exceções - parte final

nome

João Marcos Sakalauska

Colunista ainda sem descrição. Caro colunista, por favor envie-nos sua descrição.

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 a menos que esteja bem inteirado sobre Tratamento de Exceções. Se preferir,
Clique aqui para ver o primeiro artigo, ou clique aqui para ver o Segundo so Tratamento de Exceções.
Nesse artigo apenas vou adicionar um complemento referente aos artigos anteriores mostrando outros exemplos.

Download do Aplicativo de Teste. (Fonte dos exemplos mostrados nesse artigo e no artigo anterior)


Observação: Dessa vez não entrarei em datalhes 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 que não exibem mensagem alguma, exemplo:



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:

Application Events da paleta Additional.

Manipulando 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é type e insira a linha EMinhaExcecao = class (Exception);, conforme a figura a seguir.



Após isso selecione Application Events e de um duplo clique no evento OnException e cole o código abaixo:

if ( E is EMinhaExcecao ) then
Application.MessageBox('Minha Exceção ta 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 a exceção EMinhaExcecao. É claro que nesse caso nós provocaremos essa exceção, porque senão ela nunca acontecerá por si só.

No evento OnClick do botão cole o código abaixo:

raise EMinhaExcecao.Create(EmptyStr);

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



Download desse exemplo. Clique aqui.

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 ADO. Eu não consegui encontrar nenhum material específico 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 irá ajudar.

Se alguém tiver um material diferente do que foi apresentado aqui sobre exceções mande para mim no e-mail: jsakalauska@gmail.com, João Marcos.

Publicidade

Vote no artigo




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes do artigo

Categoria: Object pascal
Adicionado dia: 26/01/07
Por: João Marcos Sakalauska
Visualizado: 33123 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009