Erro em toda a aplicação - Tem como tratar?
Na nossa aplicação, de vez em quando aparece um Acces Violation. Como esse erro aparece mui raramente, mas aparece, fica difícil saber onde, pois sempre acontece no cliente. Então pergunto: Tem como tratar o erro, mas abordanmdo todo a projeto? Ou seja, gravar um log, fazer qualquer coisa, mas não deixar a aplicação travar? Já ouvi dizer que tem sim, mas eu não sei. Respostas como, coloca um Try...Exception, não adianta, pois isso é local(tratamento local). O erro é ESPORÀDICO, raro mas acontece e não tem como identificar, pois sempre o cliente é que identifica. Nada acontece em Design. A rotina que eu quero, tem identificar o erro, onde e gravar num log.
Paulo
Curtidas 0
Respostas
Massuda
05/10/2007
Pesquise o fórum por ´madexcept´ ou ´jcl debug´ que você deve encontrar referências a como gerar um log com dados do erro.
GOSTEI 0
Paulo
05/10/2007
Massuda, não é bem gerar o log a minha dúvida, mas sim, impedir que trave a aplicação quando o erro ocorrer e depois sim, gravar num log para manutenção. O erro pode dar em qualquer situação. Não há nada específico para dar o erro.
GOSTEI 0
Paulo
05/10/2007
Acho que devo tratar dentro do ApplicationEvents, para evitar que o erro trave a aplicação, segundo me passaram aqui agora. Acho que é isso. Vou ver e posto, mas não tem como postar já, pois teremos que compilar uma versão, mandar para os clientes e ver o que acontece.
GOSTEI 0
Massuda
05/10/2007
...impedir que trave a aplicação quando o erro ocorrer...
Geralmente esses mecanismos de gerar log podem ser usados de modo a não derrubar o programa.Você pode usar o OnException do TApplication ou via TApplicationEvents, mas dentro desse evento não há como obter informações mais detalhadas sobre erro além do nome da exceção.
GOSTEI 0
Carlos Jatai
05/10/2007
Amigo Paulo, acredito que esse erro deve acontecer sempre que um determinado formulário é aberto ou usado. é provável que seja simples resolver.
acredito que sua aplicação crie o formulário sempre que ele é chamado, ou seja, no Menu vc ao clicar a opção pra abrir um form, no evento on click vc mande criar o form que está sendo chamado, tipo:
(meu form.createself ; meuform.show).(PENSO EU QUE SEJA ASSIM QUE VC TRABALHA).
no menu do Delphi tem a opção Project, nesse menu que se abre tem a opção ´options´, na paleta do form tem [b:d44a68dc6b]autocreateforms[/b:d44a68dc6b] de um lado e do outro [b:d44a68dc6b]avaliable forms[/b:d44a68dc6b], veja se tds os forms do sua aplicação estão em [b:d44a68dc6b]avaliable forms[/b:d44a68dc6b]. Geralmente esse erro acontece por causa disso, eu já passei por uma situação assim e foi assim a solução.
Espero ter ajudado.
Carlos Jatai.
acredito que sua aplicação crie o formulário sempre que ele é chamado, ou seja, no Menu vc ao clicar a opção pra abrir um form, no evento on click vc mande criar o form que está sendo chamado, tipo:
(meu form.createself ; meuform.show).(PENSO EU QUE SEJA ASSIM QUE VC TRABALHA).
no menu do Delphi tem a opção Project, nesse menu que se abre tem a opção ´options´, na paleta do form tem [b:d44a68dc6b]autocreateforms[/b:d44a68dc6b] de um lado e do outro [b:d44a68dc6b]avaliable forms[/b:d44a68dc6b], veja se tds os forms do sua aplicação estão em [b:d44a68dc6b]avaliable forms[/b:d44a68dc6b]. Geralmente esse erro acontece por causa disso, eu já passei por uma situação assim e foi assim a solução.
Espero ter ajudado.
Carlos Jatai.
GOSTEI 0
Paulo
05/10/2007
Carlos, agradeço pela ajuda, mas como eu falei acima, aqui comigo nunca deu, em momento algum no momento de eu rodar o projeto. O erro é intermitente. O cliente abre o form várias vezes e não dá erro, mas do nada às vezes acontece. Como disse, o erro é intermitente. Nada a ver com o projeto, se o form foi ou não criado.
GOSTEI 0