GARANTIR DESCONTO

Fórum Como Tratar o Erro: Socket Error # 11004?????? #355989

26/03/2008

0

Estou tentando tratar o erro para que ele não seja mostrado na tela tentei fazer assim:
//Captura os erros e escreve um Log
procedure TFrmPrincipal.GeraLogError(E:Exception);
var
  mensagem: string;
  Pos1, Pos2: integer;
  NomeDoLog: string;
  Arquivo: TextFile;
begin
  NomeDoLog := ChangeFileExt(Application.Exename, ´.log´);
  AssignFile(Arquivo, NomeDoLog);
  if FileExists(NomeDoLog) then
    Append(arquivo)
  else
    ReWrite(arquivo);
  try
    WriteLn(arquivo, ´****************** ´+DateTimeToStr(Now)+ ´ ****************** ´);
    Writeln(arquivo, ´Erro Ocorrido: ´);
    Writeln(arquivo,E.Message);
    Writeln(arquivo, ´Janela: ´+ Screen.ActiveForm.Name + ´ Controle Ativo: ´+Screen.ActiveControl.Name);
    WriteLn(arquivo, ´----------------------------------------------------------------------´);
  finally
    CloseFile(arquivo)
  end;
end;

Coloquei um ApplicationEvents e fiz a rotina abaixo para ver a mensagem não era mostrada, mais mesmo assim ele ainda ta mostrando...
//Chama a procedure GeraLogError
procedure TFrmPrincipal.appEventsException(Sender: TObject; E: Exception);
begin
 GeraLogError(E);
end;
alguém pode me ajudar? :roll:


Paullsoftware

Paullsoftware

Responder

Posts

26/03/2008

Massuda

O ´socket error 11004´ é um erro de comunicação via socket. Você está vendo esse erro quando usa seu programa FORA da IDE?


Responder

Gostei + 0

26/03/2008

Paullsoftware

O ´socket error 11004´ é um erro de comunicação via socket. Você está vendo esse erro quando usa seu programa FORA da IDE?
Isso Massuda, eu tenho um ´GetIP´ programa que captura um IP de conexão e grava na web para que eu possa acessar o sistema remotamente, só que, as vezes o servidor trava e ele fica mostrando esse erro, eu já tentei tirar ele enviando o erro pro txt ou memo, mais mesmo assim, algumas vezes ele mostra a mensagem e simplesmente trava tudo... daí meu WebService perde a comunicação tb.. então eu estou querendo tirar esse aviso pra tentar aminizar as coisas por aqui! :roll:


Responder

Gostei + 0

26/03/2008

Abagattini

Faz algo assim:
begin
  TRY
    //instruções normais até ocorrer o erro
  EXCEPT
    //ocorreu o erro - aqui o erro vai ser tratado, é simplesmente
    //não fazer nada - sem linhas de código nenhum
  END;
end;



Responder

Gostei + 0

27/03/2008

Paullsoftware

Faz algo assim:
begin
  TRY
    //instruções normais até ocorrer o erro
  EXCEPT
    //ocorreu o erro - aqui o erro vai ser tratado, é simplesmente
    //não fazer nada - sem linhas de código nenhum
  END;
end;
Valeu, mas já está assim!!!

try
 //procedimentos usados na função
except on Msg:Exception do
 GeraLogError(msg);//fiz assim para não exibir o erro na tela
end;
mesmo assim de vez enquando o erro aparece na tela :x


Responder

Gostei + 0

28/03/2008

Abagattini

try //procedimentos usados na função except on Msg:Exception do GeraLogError(msg);//fiz assim para não exibir o erro na tela end;

Não esta faltando
 GeraLogError(msg.MESSAGE);//fiz assim para não exibir o erro na tela



Responder

Gostei + 0

28/03/2008

Paullsoftware

[quote:67d69f592e] try //procedimentos usados na função except on Msg:Exception do GeraLogError(msg);//fiz assim para não exibir o erro na tela end;

Não esta faltando
 GeraLogError(msg.MESSAGE);//fiz assim para não exibir o erro na tela
[/quote:67d69f592e]
você olhou o procedimento abaixo:
procedure TFrmPrincipal.GeraLogError(E:Exception); 
var 
  mensagem: string; 
  Pos1, Pos2: integer; 
  NomeDoLog: string; 
  Arquivo: TextFile; 
begin 
  NomeDoLog := ChangeFileExt(Application.Exename, ´.log´); 
  AssignFile(Arquivo, NomeDoLog); 
  if FileExists(NomeDoLog) then 
    Append(arquivo) 
  else 
    ReWrite(arquivo); 
  try 
    WriteLn(arquivo, ´****************** ´+DateTimeToStr(Now)+ ´ ****************** ´); 
    Writeln(arquivo, ´Erro Ocorrido: ´); 
    Writeln(arquivo,E.Message); 
    Writeln(arquivo, ´Janela: ´+ Screen.ActiveForm.Name + ´ Controle Ativo: ´+Screen.ActiveControl.Name); 
    WriteLn(arquivo, ´----------------------------------------------------------------------´); 
  finally 
    CloseFile(arquivo) 
  end; 
end;
a entrada é uma variável do tipo Exception não preciso informar como parametro msg.Message, pois, o mesmo já é tratado na função, outra coisa amigo. Nos testes que fiz aqui não é mostrado a mensagem e sim escrita no Memo1, porém, alguma coisa acontece durante o procedimento que ele mostra na tela o erro mensionado...
valeu pela ajuda! :wink:

Alguém mais pode dar uma luz??


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar