Postagens Recentes

quinta-feira, 21 de novembro de 2013

Tratamentos de erro



Saudações!

Hoje vou falar sobre tratamentos de exceções ou erros como muitos estão acostumados.

Uma exceção é levantada quando um erro ou outras interrupções de eventos  é gerado em um programa. A exceção transfere o controle para um manipulador de exceção, que permite separar a lógica normal do programa de tratamento de erros. Como as exceções são objetos, eles podem ser agrupados em hierarquias usando herança, e novas exceções podem ser introduzidas sem afetar o código existente. Uma exceção pode transportar informação, tais como uma mensagem de erro, a partir do ponto em que é aumentada para o ponto onde ele é tratado.

Quando um aplicativo usa a unidade SysUtils, a maioria dos erros de execução são convertidas automaticamente em exceções. Muitos erros que poderiam encerrar um aplicativo - como memória insuficiente, a divisão por zero, e falhas de proteção geral - podem ser capturados e manipulados. Help Embarcadero Rad Studio - XE3

O que acha de apresentar um exemplo?

Por exemplo, digamos que queremos validar uma data que o usuário informa no momento em que está realizando a manutenção de um cliente. Sem querer, o usuário informa o seguinte valor: ExpertDelphi.
Quando o usuário clicar em Salvar (estou considerando que será validado a data apenas no momento em que for pressionado o botão Salvar), o sistema emitirá a seguinte mensagem:

''ExpertDelphi'' is not a valid date.

Para evitarmos que o usuário receba este tipo de mensagem, pode ser feito o seguinte tratamento:

  procedure proValidaData(const Value: ShortString);
  begin
    try
      StrToDate(Value);
    except
      ShowMessage('Data inválida');
    end;
  end;

No evento OnClick de um botão, chame a procedure da seguinte forma: proValidaData('ExpertDelphi');

Veja que agora foi emitido uma mensagem personalizada para o usuário.

Agora vamos melhorar um pouco mais a procedure proValidaData.

procedure proValidaData(const Value: ShortString);
  begin
    try
      StrToDate(Value);
    except
      on E: Exception do
        ShowMessage('Data inválida.' + #13 + 'Mensagem original: ' + E.Message);
    end;

  end;

Ao chamar a procedure proValidaData('ExpertDelphi'), será apresentado a seguinte mensagem:

Data inválida.
Mensagem original: ''ExpertDelphi'' is not a valid date

Note que agora, além de mostrarmos a mensagem personalizada para o usuário, também mostramos a mensagem original.



Atualizações - Gratis



Smiley :)
:D
:)
:[
;)
:D
:O
(6)
(A)
:'(
:|
:o)
8)
(K)
(M)

Nenhum comentário:

Postar um comentário