Tratamento de Erro

Delphi

18/02/2006

coloquei um tratamento de erro no evento OnException de Application.

  if E.ClassType = EConvertError then
    ShowMessage(´data inválida´);


quando digito uma data inválida realmente é exibida a mensagem. porém também recebo esta mensagem quando digito algum valor inválido em outros tipos de campo.
isso ocorre pois o erro é o mesmo: EConvertError.

o que quero é saber quando o erro foi em uma data.


Raserafim

Raserafim

Curtidas 0

Respostas

Raserafim

Raserafim

18/02/2006

como faço para saber se uma palavra está contina dentro da mensagtem de erro?


GOSTEI 0
Michael

Michael

18/02/2006

Use a propriedade [b:0b370da1f7]Message[/b:0b370da1f7], de [b:0b370da1f7]Exception[/b:0b370da1f7].

if Pos(´Data inválida´, E.Message) > 0 then
...


Porém, essa não é a maneira mais correta de se identificar uma mensagem de erro. O indicado seria vc ter uma exceção personalizada, derivada de [b:0b370da1f7]Exception[/b:0b370da1f7], e levantar essa exceção ao invés de [b:0b370da1f7]EConvertError[/b:0b370da1f7]. Aí vc poderia tratá-la usando [b:0b370da1f7]try..except[/b:0b370da1f7], ou no seu caso, dentro do evento [b:0b370da1f7]OnException[/b:0b370da1f7], exatamente como fez acima.

[]´s


GOSTEI 0
Raserafim

Raserafim

18/02/2006

é isso æ Michael.

valeu


GOSTEI 0
POSTAR