RES: [delphi-br] Tratamento de ExcessõesWalter, boa tarde, venho novamente com 
algumas dúvidas com relacao ao tratamento de excessões.
Eu criei um projeto novo e tentei implementar conforme suas informações enviada 
pelo e-mail, mas está dando erro justamente no 
CreateDataException(Screen.ActiveForm,Screen......

ao compilar dá a seguinte mensagem: Undeclared identifier:'CreateDataException' 
 eu tentei criar mas não consegui, se puder me ajudar.

obrigado
  ----- Original Message ----- 
  From: Walter Alves Chagas Junior 
  To: 'plucaslazaro' 
  Sent: Thursday, September 29, 2005 6:29 PM
  Subject: RES: [delphi-br] Tratamento de Excessões


  Geralmente eu coloco ele nos Exceptions, 

  Try 

   .... 

  except 
     on E: Exception do 
       
CreateDataException(Screen.ActiveForm.Name,Screen.ActiveControl.Name,'84',Ge....
 
  end; 

  Mas o que que tá pegando aí? 



  []s 

  Walter Alves Chagas Junior 
  Projeto e desenvolvimento 
  Telemont Engenharia de telecomunicações 
  Belo Horizonte - MG - Brazil 
  [EMAIL PROTECTED] 
  Fone: (31) 3389-8215 Fax: (31) 3389-8200 



  -----Mensagem original----- 
  De: plucaslazaro [mailto:[EMAIL PROTECTED] 
  Enviada em: terça-feira, 27 de setembro de 2005 21:27 
  Para: [EMAIL PROTECTED] 
  Assunto: Re: [delphi-br] Tratamento de Excessões 



  Walter, me desculpe pelo e-mail direto a vc e não ao grupo, mas eu achei 
  muito interessante este tratamento de excessões, mas não sei como 
  implementa-lo, sou novato em Delphi, se não for pedir demais, teria algum 
  exemplo. 

  obrigado 

  Paulo 
  ----- Original Message ----- 
  From: "Walter Alves Chagas Junior" <[EMAIL PROTECTED]> 
  To: <delphi-br@yahoogrupos.com.br> 
  Sent: Friday, September 23, 2005 10:11 AM 
  Subject: RES: [delphi-br] Tratamento de Excessões 



  Geralmente eu crio um arquivo texto aonde vou salvando todas as exceções. 



  function GetUnitName(argObject: TObject): string; 
  begin 
    if (argObject.ClassInfo <> nil) then 
    begin 
      ptrTypeData := GetTypeData(argObject.ClassInfo); 
      Result := ptrTypeData.UnitName; 
    end; 
  end; 

  function SaveLogError(Const AFormError,AControlError, ALineError, 
  AUnitError, ASimbolError, ADescription, ATypeError,  AInsError, ATableError: 
  string): Longint; 
  var 
    VMemory: TMemoryStatus; 
    VLogFile: TextFile; 
    VLogFileName: string; 
  begin 
    VMemory.dwLength := SizeOf(TMemoryStatus); 
    GlobalMemoryStatus(VMemory); 
    VLogFileName := ExtractFilePath(paramstr(0)) + '\errorsys.log'; 
    try 
      AssignFile(VLogFile,VLogFileName); 
      if FileExists(VLogFileName) then 
      begin 
        Append(VLogFile); 
  //      Writeln(VLogFile,''); 
        Writeln(VLogFile,StringOfChar('-', 62)); 

  //      Writeln(VLogFile,''); 
      end 
      else 
      begin 
        Rewrite(VLogFile); 
        Writeln(VLogFile,'TELEMONT - Engenharia de Telecomunicações S/A'); 
        Writeln(VLogFile,'DGE - Diretoria de Gestão Empresarial/Matriz'); 
        Writeln(VLogFile,StringOfChar('-', 62)); 
        Writeln(VLogFile,''); 
      end; 

      Writeln(VLogFile,format('DATE/TIME............: 
  %s',[DateTimeToStr(Now)])); 
      Writeln(VLogFile,format('Version Number.......: %s',[sVersion])); 
      Writeln(VLogFile,format('Active Form..........: %s',[AFormError])); 
      Writeln(VLogFile,format('Active Control.......: %s',[AControlError])); 
      Writeln(VLogFile,format('Unit Error...........: %s',[AUnitError])); 
      Writeln(VLogFile,format('Call Symbol..........: %s',[ASimbolError])); 
      Writeln(VLogFile,format('Exception type.......: %s',[ATypeError])); 
      Writeln(VLogFile,format('Exception Message....: %s',[ADescription])); 
      Writeln(VLogFile,format('Instruction error....: %s',[AInsError])); 
      Writeln(VLogFile,format('Line error...........: %s',[ALineError])); 
      Writeln(VLogFile,format('Table Error..........: %s',[ATableError])); 

      CloseFile(VLogFile); 
      result := IOResult; 
    except 
      result := -1; 
    end; 
  end; 

  Parametros: 

  AFormError -> Nome do form que tava ativo quando ocorreu o erro 
  AControlError -> Nome do controle (Button, form, Checkbox, etc) que foi 
  clicado quando ocorreu o erro 
  ALineError -> Nº da linha com o erro (voce deve coloca-la na mão mesmo na 
  implementação) 
  AUnitError -> Nome da Unit com o erro (voce deve coloca-la na mão mesmo na 
  implementação) 
  ASimbolError -> Nome da rotina com o erro (voce deve coloca-la na mão mesmo 
  na implementação) 
  ADescription -> Descrição do erro (Use E.Message) 
  ATypeError -> Tipo do erro (Use E.Class) 
  AInsError -> Instrução (código) com erro (Descreva-o manualmente; 
  ATableError -> Tabela em uso quando ocorreu o erro. 

  Use-a assim: 
  try 

  except 
     on E: Exception do 

  CreateDataException(Screen.ActiveForm.Name,Screen.ActiveControl.Name,'84',Ge 
  tUnitName(Self), 'procedure TfDlgRelatorioInspecoes.BitBtn2Click(Sender: 
  TObject);', E.Message, E.ClassName, 
  'DMFrot.dsListaInspecoesPendentes.Dataset.Open;', 'ZVTLMINSPECAO', 
  SErrorTableOpen); 
  end; 




  []s 

  Walter Alves Chagas Junior 
  Projeto e desenvolvimento 
  Telemont Engenharia de telecomunicações 
  Belo Horizonte - MG - Brazil 
  [EMAIL PROTECTED] 
  Fone: (31) 3389-8215 Fax: (31) 3389-8200 



  -----Mensagem original----- 
  De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] 
  nome de Luis Lopes 
  Enviada em: sexta-feira, 23 de setembro de 2005 09:37 
  Para: delphi-br@yahoogrupos.com.br 
  Assunto: [delphi-br] Tratamento de Excessões 



  Bom dia pessoal! 

  Estou fazendo uma rotina para tratamento genérico de 
  erros, tanto do delphi, quanto de uma classe que 
  criei. 
  O que eu quero fazer, e não estou conseguindo, é 
  'empilhar' todas as excessões que forem ocorrendo, em 
  diversos pontos do programa, e exibir todas elas. 
  Alguém pode me dar uma luz?! 

  Agradeço desde já. 

  []´s 

  Luis Alberto. 

  __________________________________________________ 
  Faça ligações para outros computadores com o novo Yahoo! Messenger 
  http://br.beta.messenger.yahoo.com/ 



  -- 
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> 

  Para ver as mensagens antigas, acesse: 
   http://br.groups.yahoo.com/group/delphi-br/messages 

  Para falar com o moderador, envie um e-mail para: 
   [EMAIL PROTECTED] ou [EMAIL PROTECTED] 

  Links do Yahoo! Grupos 









  [As partes desta mensagem que não continham texto foram removidas] 




  -- 
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> 

  Para ver as mensagens antigas, acesse: 
   http://br.groups.yahoo.com/group/delphi-br/messages 

  Para falar com o moderador, envie um e-mail para: 
   [EMAIL PROTECTED] ou [EMAIL PROTECTED] 

  Links do Yahoo! Grupos 












          

          
                  
  _______________________________________________________ 
  Novo Yahoo! Messenger com voz: ligações, Yahoo! Avatars, novos emoticons e 
muito mais. Instale agora! 
  www.yahoo.com.br/messenger/ 


[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a