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:
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: 35274 vezes