Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

TheMaker

Mais Tratamentos de Erro....

Recommended Posts

Oi galera,

 

Criei a seguinte procedure :

 

Procedure ShowErrors(Sender : TObject; E : Exception);BeginMessageDlg('Erro do programa'+#13+E.Message,mtError,[Mbok],0);Abort;End;

No Oncreate do form Principal eu digo:

 

Application.OnException := ShowErrors;

Tranquilo.. funciona extremamente bem.

mas o q eu gostaria mesmo de saber é se é possível assim como no parametro

E : Exception especificar um parametro ou outra coisa qualquer q me diga q o error foi em uma determinada procedure, ou function, ou Form, unit , linha enfim...

 

Algo q pudesse me ajudar a saber de onde exatamente vem o erro...

 

por exemplo:

 

Tenho um projeto onde uma rotina chama várias subrotinas..se a msg de erro pudesse me dizer d qual subrotina o erro se origina seria muito bom!!

 

Se alguém souber ou tiver alguma coisa aí ñ deixe de postar OK?

 

Um abraço!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

E : Exception especificar um parametro ou outra coisa qualquer q me diga q o error foi em uma determinada procedure, ou function, ou Form, unit , linha enfim...

Acho que esse tipo de informaçao não está disponivel no Objeto Exception (E)O que pode ajudar é E.ClassName que irá retornar o Nome da Classe de Exceçao gerada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pra você fazer isto você tem q tratar o objeto Sender, que é derivado da classe TObject, devido ao Sender ser qualquer componente.você pode fazer um teste simples como: if sender as edit then "é um edit!"entendeu?? naum sei se o teste condicional é assim....mas tente...

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode fazer um teste simples como: if sender as edit then "é um edit!"

If Sender is TEdit then TEdit(Sender).Text ......

Compartilhar este post


Link para o post
Compartilhar em outros sites

O TheMaker busca uma coisa que seria maravilhosa! Se alguém souber como se faz mande-me um mail.virtual.viegas@netc.ptPara os programadores mais antigos. Lembram-se quando um programa feito em Clipper rebentava, até aparecia a número da linha onde ocorria o erro?Eu tentei fazer em Delphi e não consegui. O máximo que fiz foi umas variaveis globais que sinalizavam em que local da execução os programas estavam. Mas o resultado não foi satisfatório... mas pode estar aí a solução

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que ninguém aqui usa Assert não é?Tudo bem que Assert deveria ser deixado fora na compilação final, mas ele faz isso, passando nome do arquivo e a linha do Assert ofendido.No Delphi.NET, já existe um suporte built-in no .NET que lista cada stack frame(rotinas chamadas).

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.