Como Tratar o Erro: Socket Error # 11004??????
Estou tentando tratar o erro para que ele não seja mostrado na tela tentei fazer assim:
//Captura os erros e escreve um Log
Coloquei um ApplicationEvents e fiz a rotina abaixo para ver a mensagem não era mostrada, mais mesmo assim ele ainda ta mostrando...
alguém pode me ajudar? :roll:
//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;
Paullsoftware
Curtidas 0
Respostas
Massuda
26/03/2008
O ´socket error 11004´ é um erro de comunicação via socket. Você está vendo esse erro quando usa seu programa FORA da IDE?
GOSTEI 0
Paullsoftware
26/03/2008
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:GOSTEI 0
Abagattini
26/03/2008
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;
GOSTEI 0
Paullsoftware
26/03/2008
Faz algo assim:
Valeu, mas já está 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;
try //procedimentos usados na função except on Msg:Exception do GeraLogError(msg);//fiz assim para não exibir o erro na tela end;
GOSTEI 0
Abagattini
26/03/2008
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
GOSTEI 0
Paullsoftware
26/03/2008
[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
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;
valeu pela ajuda! :wink:
Alguém mais pode dar uma luz??
GOSTEI 0