1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Delphi - Tratar Excessões de Aplicativos

Discussão em 'Outras Linguagens' iniciado por fdantas, Maio 31, 2011.

  1. fdantas

    fdantas Administrator Moderador

    Pessoal abaixo coloquei uma forma simples de tratar erros em aplicações feitas em Delphi, aos poucos vou postando dicas aqui.

    Colocar no FORM Create

    Código:
      Application.OnException := ManipulaExcecoes;

    Criar a Procedure

    Código:
    procedure TForm1.ManipulaExcecoes(Sender: TObject; e: Exception);
    begin
      try
          if count = 0 then
          begin
            if (Pos('unavailable database'      , lowercase(e.message)) > 0) or
            (Pos('connection lost'           , lowercase(e.message)) > 0) or
            (Pos('invalid transaction handle', lowercase(e.message)) > 0) or
            (Pos('table unknown'             , lowercase(e.message)) > 0) or
            (Pos('automacao/db'              , lowercase(e.message)) > 0) or
            (Pos('foi forçado o cancelamento', lowercase(e.message)) > 0) or
            (Pos('internal gds software'     , lowercase(e.message)) > 0) or
            (Pos('unable to complete network', lowercase(e.message)) > 0) then
            begin
              EnviaEmail(TimeToStr(Time) + ' = ' + e.Message + '  Banco Caiu !',1);//044.02
            end
            else
            begin
              if (Pos('conversion error from string', lowercase(e.message)) > 0) then
              begin
                EnviaEmail(TimeToStr(Time) + ' = ' + e.Message + chr(10) + chr(13) + 'Será rodado um programa para tentar corrigir o erro',8);//255.01
              end;
              EnviaEmail(TimeToStr(Time) + ' = ' + e.Message ,1);//044.02
            end;
          end;
      except
      end;
    end;
     
    

Compartilhe esta Página