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