Fórum Exception Tratamento de Erros #273079
18/03/2005
0
Estou montando a biblioteca de tratamento de erros e gostaria de gerar um log no tratamento.
neste log gostaria de colocar o procedimento de onde foi gerado o erro, o nome do arquivo e também a linha.
:shock:
pois é galera só que eu não sei como pegar estes dados automáticamente e na verdade nem sei se é possivel fazer isto.
:?: Tem como
No tratamento de erro saber qual procedure gerou o erro?
No tratamento de erro saber qual linha gerou o erro?
No tratamento de erro saber qual arquivo gerou o erro?
bem acredito questas perguntas não seja um desafio somente para mim..
caso vcs não saibam como fazer desta meneira qualquer sujestão de como fazer isto é bem vinda.
Mitsalito
Curtir tópico
+ 0Post mais votado
18/03/2005
Cara vou ganhar uma promoção por sua ajuda :D
Não sei nem o que te dizer ... se vc não este caminho das pedras to pra te falar que eu iria desinstala-lo e não teria visto aquilo ... muito bom excelente .... brigadão
Mitsalito
Gostei + 1
Mais Posts
18/03/2005
Gandalf.nho
Gostei + 0
18/03/2005
Marco Salles
Isto serve para voce :?: :?: :?:
Gostei + 0
18/03/2005
Mitsalito
O Delphi tem alguma função que retorne o numero da linha? por exemplo.
Gostei + 0
18/03/2005
Massuda
Gostei + 0
18/03/2005
Mitsalito
Gostei + 0
18/03/2005
Gandalf.nho
Tem que ser baixada do link que o Massuda forneceu.
Gostei + 0
18/03/2005
Mitsalito
Gostei + 0
18/03/2005
Mitsalito
Gostei + 0
18/03/2005
Gandalf.nho
Aí está o nome da unit
Gostei + 0
18/03/2005
Rômulo Barros
Link: [url]http://forum.clubedelphi.net/viewtopic.php?t=48275&highlight=[/url]
_____________________________________________
[b:08b3091f45][color=blue:08b3091f45]Utilize a Ferramenta de Pesquisa do Fórum[/color:08b3091f45][/b:08b3091f45]
Pesquisar pelos termos
_____________________________________________
[b:08b3091f45]Veja como[url=http://forum.clubedelphi.net/viewtopic.php?t=16976] OBTER RESPOSTAR RÁPIDAS[/url][/b:08b3091f45]
[b:08b3091f45]Veja as novas [url=http://forum.clubedelphi.net/viewtopic.php?t=59817]MUDANÇAS NA ESTRUTURA[/url] do site[/b:08b3091f45]
[b:08b3091f45]Leia sempre as [url=http://forum.clubedelphi.net/viewtopic.php?t=6689]REGRAS DE CONDUTA[/url][/b:08b3091f45]
Gostei + 0
18/03/2005
Marco Salles
Da um erro dizendo que : [b:d16a71e9a3]Object Not Found e ERRO 404[/b:d16a71e9a3] :( :( :(
to usando o endereço :
http://homepages.borland.com/jedi/jcl/]JCL[/url]
Mas não consegui Ter acesso a estas Units
:cry: :cry: :cry: :cry: :cry: Como acessar :?: :?: :?: :?:
Gostei + 0
18/03/2005
Mitsalito
MethodAddress(const Name: ShortString): Pointer; nesta função tenho de ter o nome da procedure;
como faço pra descobrir isso sem ter de passar nada como parametro
Gostei + 0
18/03/2005
Mitsalito
TJclMapLineNumberUnitEvent nada declarado na documentação dentre outros objetos que nada ha declarado
Gostei + 0
18/03/2005
Massuda
Eu uso o JCL basicamente para ter um tratamento para exceções não tratadas. Acho que é mais ou menos o que você quer fazer e é, em parte, o que o [url=http://www.madshi.net/]Mad Exception[/url] faz.
Tomando por base a versão do JCL que estou usando (v.1.90), eu costumo utilizar...[list:497441a00a][*:497441a00a]AssertKindOf[*:497441a00a]TraceLoc[*:497441a00a]FileByLevel/ProcByLevel/LineByLevel[*:497441a00a]FileOfAddr/ProcOfAddr/LineOfAddr[*:497441a00a]IsDebuggerAttached[/list:u:497441a00a]Tudo isso está mais ou menos documentado ou não é difícil de entender como usar depois de fazer alguns testes com elas.
O problema maior é saber como preparar o executável para poder usar essas funções. Acho que a documentação nem fala sobre isso.
Lá vai a ´receita do bolo´:[list=1:497441a00a][*:497441a00a]Na instalação do JCL, marque a opção [b:497441a00a]IDE experts/Debug extension[/b:497441a00a] e marque a opção [b:497441a00a]Sample exception dialogs[/b:497441a00a].[*:497441a00a]De volta a IDE, abra seu projeto[*:497441a00a]Dê [b:497441a00a]File/New/Other.../Dialogs[/b:497441a00a][*:497441a00a]Dê um clique duplo no ícone do [b:497441a00a]Exception Dialog[/b:497441a00a][*:497441a00a]Salve seu projeto dando um [b:497441a00a]File/Save all[/b:497441a00a][*:497441a00a]Marque a opção [b:497441a00a]Project/Insert JCL Debug Data[/b:497441a00a][*:497441a00a]Dê um [b:497441a00a]Project/Build[/b:497441a00a] (um dialog box adicional do JCL irá aparecer se o build for bem sucedido)[/list:o:497441a00a]Se você optar por não utilizar a janela de exceção do JCL, não precisa fazer os passos 3-4-5. Entretanto, vale a pena testar pelo menos uma vez essa caixa de diálogo e dar uma olhada como o relatório de erro é criado (na função CreateReport).
[b:497441a00a]Mensagem editada![/b:497441a00a]
[quote:497441a00a=´Massuda´]
Massuda,
Link corrigido.
Sandra/moderação
Gostei + 0
18/03/2005
Massuda
Agora... tome nota das pegadinhas:[list:c75e5b9433][*:c75e5b9433]Nunca, em hipótese alguma, compacte seu executável (em particular com o UPX). Esses compactadores de executável costumam alterar os endereços de carga dos módulos... o endereço de uma função/procedure quando o executável é gerado fica diferente do endereço quando o executável é usado, resultado: as informações que você captura na exceção estão todas erradas![*:c75e5b9433]Exceções que ocorrem muito cedo (na inicialização das units) ou muito tarde (na finalização das units) costumam não ser capturadas por qualquer mecanismo de captura de exceções que você imaginar; para evitar isso, vá no fonte do seu DPR e garanta que a unit que inicializa seu mecanismo de captura de exceções seja a primeita unit da lista (difícil de fazer, especialmente se você usa a unit ShareMem)[/list:u:c75e5b9433]
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)