Segunda-feira, 05 de agosto de 2002 às 01h59

Tratando Exceções no Delphi


Olá pessoal, como estão? Tenairam muito seus aprendizados esta semana? Hoje falaremos sobre Tratamento de Exceções, um assunto super importante e bem solicitado.

São com as exceções que tratamos os erros que aparecem na execução de trarefas em nossas aplicações. Uma exceção acontece quando algo deu errado, ou seja, quando não aconteceu aquilo que era esperado, então neste momento o Delphi executa a exceção que poderá resolver ou não, desde que, é claro, seu código tenha sido programado para isso, no lugar de mostrar aquela mensagem indesejável ao usuário.

A principal finalidade de usarmos o tratamento de exceções em nossas aplicações em Delphi é torná-lo mais robusto por meio de manipulação de erros. As exceções permitem que o código de tratamento e erros de seu código normal sejam separados, o que torna seu código final mais compacto e simples de enteder. Uma outra vantagem em usar execeções é que elas definem um mecanismo de relato de um erro uniforme que também é usado pelo componentes do Delphi.

As exceções se baseiam em quatro blocos especiais:

. Try, que indica o início de um bloco de comandos protegidos;
. Except, que delimita o final de um bloco de comandos protegidos e põe os códigos de tratamento de exceção;
. Finally, que é usado para especificar os blocos de comandos que sempre serão executados independente do resultado;
. Raise, que é a instrução usada para gerar uma exceção.

Um dos erros mais comuns e mais apresentados nos livros é o erro de divisão por zero, ou seja, quando o denominador de sua divisão é zero. Exemplo: X / Y, onde X é um número qualquer diferente de zero e Y é igual a zero.

Poderiamos utilizar também o tratamento de exceções para outras situções como por exemplo erro de conversão por tipos incompatíveis ou um erro na gravação de um registro. Vamos utilizar o exemplo da divisão entre dois números por ser bem didático, sendo que veremos como funciona a exceção nesta situação.

Vamos ao exemplo prático então:

1. Crie um novo projeto no Delphi;

2. Declare uma nova fução passando os números x, y do tipo inteiro ou qualquer outro tipo numérico que desejar;

3. Construa o esqueleto da funcção ou Precione Ctrl+Shift+C para o Delphi fazer isso para você;

4. Defina agora o código da sua função como o exemplo a seguir:

function
   Dividir(X, Y: integer): integer; begin try
    Result := X div Y; except on EDivByZero do begin
    Result := 0;
   ShowMessage('Erro! Divisor igual a zero. Divisão inválida!);
  end;
 end;
end;

5. Neste nosso exemplo se o valor de Y for igual a zero, a função retornará um zero ao invéz de interromper o programa apenas com um erro.

Nessa instrução de Tratamento de Exceção, pegamos a exceção EDivByZero que é intena do Delphi. O Delphi define uma hierarquia de exceções e você pode optar por manipular cada tipo de exceção de forma diferente ou agrupa-las em conjuntos.

Espero vocês na semana que vêm.

Um grande abroço e estudem.

Nenhum comentário até agora

Cancelar resposta

Qual a sua opinião?

Faça login abaixo ou cadastre-se rapidamente.


Sobre o Autor
Marcelo Varela é professor Delphi, SQL Server e ASP em cursos Cliente/Servidor.

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.