Tratamento de Erro
coloquei um tratamento de erro no evento OnException de Application.
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.
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
Curtidas 0
Respostas
Raserafim
18/02/2006
como faço para saber se uma palavra está contina dentro da mensagtem de erro?
GOSTEI 0
Michael
18/02/2006
Use a propriedade [b:0b370da1f7]Message[/b:0b370da1f7], de [b:0b370da1f7]Exception[/b:0b370da1f7].
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
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
18/02/2006
é isso æ Michael.
valeu
valeu
GOSTEI 0