Erro em tempo de execução

Delphi

08/03/2004

Como faço para retornar o erro em tempo de execução

exemplo: qual a linha que deu erro, nome do form, nome da unit

isso é possível no Delphi?


Mfrinfo

Mfrinfo

Curtidas 0

Respostas

Beppe

Beppe

08/03/2004

Existe um tipo de exceção que armazena estes dados, como nome do arquivo e linha. Usamos o método Assert para isso. O método verifica uma condição, se for False, a mensagem é mostrada.

Assert(Form <> nil, ´Condição inválida´);


equivale a:

if Form = nil then
  raise EAssertionFailed.Create(´Condição inválida´);


Mas somente a primeira forma exibe as informações que você quer.

Para as exceções que são geradas pela VCL, que não são via Assert, é mais difícil, mas não impossível. Existem componentes que recuperam alguns dados a partir do endereço do erro. Você encontra na RTL do Jedi, por exemplo.


GOSTEI 0
Khundalini

Khundalini

08/03/2004

Use a JediVCL. Ela tem a JCL(Jedi Component Library), que é uma coleção de componentes não-visuais para as mais diversas utilidades. Ela, além de fornecer units para interceptar exceções (inclusive mostrando o tipo de informação que vc quer), fornece uma caixa de diálogo padrão para que, sempre que uma exceção ocorrer, ela seja mostrada com as informações sobre a Exceção.

[]s
Rubem Rocha
Manaus, AM


GOSTEI 0
POSTAR