Não exibe exceptions
Tenho um projeto em D5 que insiste em não exibir exceptions.
Para contornar o problema tive q colocar um ApplicatonEvents e recorrer ao Evento OnException para resolver o problema.
Por padrão, os novos projetos q crio não apresentam esse problema.
Tentei colocar um raise no evento Create do form e dos datamodules q estão em autocreate, para verificar a partir de q momento o problema ocorre, mas no create do primeiro datamodule (q é o primeiro arquivo a ser criado) ele não exibe a exception. (sem o ApplicationEvents!!).
Ah! Inclusive recriei o projeto inteiro, mas nada de efetivo ocorreu para a resolução desse problema.
Alguém pode me ajudar nessa??
Para contornar o problema tive q colocar um ApplicatonEvents e recorrer ao Evento OnException para resolver o problema.
Por padrão, os novos projetos q crio não apresentam esse problema.
Tentei colocar um raise no evento Create do form e dos datamodules q estão em autocreate, para verificar a partir de q momento o problema ocorre, mas no create do primeiro datamodule (q é o primeiro arquivo a ser criado) ele não exibe a exception. (sem o ApplicationEvents!!).
Ah! Inclusive recriei o projeto inteiro, mas nada de efetivo ocorreu para a resolução desse problema.
Alguém pode me ajudar nessa??
Marcel.brambatti
Curtidas 0
Respostas
Marcelo Saviski
06/01/2004
vc diz aquelas exeções que ocorrem quando você está rodando um programa pelo Delphi?
se for, tente marcar a opção ´Show Delphi Exception´ em Tools | Debugger
Options | Language Exceptions.
se for, tente marcar a opção ´Show Delphi Exception´ em Tools | Debugger
Options | Language Exceptions.
GOSTEI 0
Marcel.brambatti
06/01/2004
Já marquei essa opção, o q acontece é o seguinte:
- ao achar uma exceção ele levanta o delphi ;
- pará no ponto da exceção;
- ao pressionar F7 para ir ao próximo passo que seria mostrar a caixa de diálogo, o Delphi interrompe a procedure e segue como se a chamada (raise exception.create(´ERRO´)) não existisse, ou seja, a caixa de diálogo não aparece.
- ao achar uma exceção ele levanta o delphi ;
- pará no ponto da exceção;
- ao pressionar F7 para ir ao próximo passo que seria mostrar a caixa de diálogo, o Delphi interrompe a procedure e segue como se a chamada (raise exception.create(´ERRO´)) não existisse, ou seja, a caixa de diálogo não aparece.
GOSTEI 0
Otorquati
06/01/2004
Marcel,
Estou tendo o mesmo problema com um projeto que estou desenvolvendo.
A rotina é a seguinte:
procedure TDM.cds_clientesCPF_CLIENTEValidate(Sender: TField);
begin
IF Length(Sender.AsString)>11 then
Begin
// ShowMessage(´Verificando CGC´);
if Not CheckCGC(Sender.AsString) then
raise Exception.CreateFmt(´O CNPJ ¬s é inválido!´,[Sender.AsString]);
End
Else
// Checa o CPF
Begin
// ShowMessage(´Verificando CPF´);
if Not CheckCpf(Sender.AsString) then
raise Exception.CreateFmt(´O CPF ¬s é inválido!´,[Sender.AsString])
End;
end;
quando rodo pelo delhi a exception é levantada, mas quando rodo somente a aplicação nada é mostrado.
Mas parece que ninguem aqui sabe, o jeito é perguntar aos gurus Guinther ou Fernando Prado.
Estou tendo o mesmo problema com um projeto que estou desenvolvendo.
A rotina é a seguinte:
procedure TDM.cds_clientesCPF_CLIENTEValidate(Sender: TField);
begin
IF Length(Sender.AsString)>11 then
Begin
// ShowMessage(´Verificando CGC´);
if Not CheckCGC(Sender.AsString) then
raise Exception.CreateFmt(´O CNPJ ¬s é inválido!´,[Sender.AsString]);
End
Else
// Checa o CPF
Begin
// ShowMessage(´Verificando CPF´);
if Not CheckCpf(Sender.AsString) then
raise Exception.CreateFmt(´O CPF ¬s é inválido!´,[Sender.AsString])
End;
end;
quando rodo pelo delhi a exception é levantada, mas quando rodo somente a aplicação nada é mostrado.
Mas parece que ninguem aqui sabe, o jeito é perguntar aos gurus Guinther ou Fernando Prado.
GOSTEI 0
Otorquati
06/01/2004
Amigos,
Depois de muita pesquisa descobri o que estava errado em meu aplicativo e tlavez o mesmo esteja acontecendo com vocês.
No meu caso havia uma chamada para uma procedure que armazenava o logs de erros para depois enviá-los por e-mail.
Como mudei a IDE da aplicação de vcl para clx e este procedure usava uma chamada a uma função API do windows desabilitei toda a rotina e me esqueci de desabilitar sua chamada que estava assim:
application.OnException:=LogSystem;
Desabilitando esta chamada tudo voltou ao normal...
Depois de muita pesquisa descobri o que estava errado em meu aplicativo e tlavez o mesmo esteja acontecendo com vocês.
No meu caso havia uma chamada para uma procedure que armazenava o logs de erros para depois enviá-los por e-mail.
Como mudei a IDE da aplicação de vcl para clx e este procedure usava uma chamada a uma função API do windows desabilitei toda a rotina e me esqueci de desabilitar sua chamada que estava assim:
application.OnException:=LogSystem;
Desabilitando esta chamada tudo voltou ao normal...
GOSTEI 0