Fórum Try... except não deu certo!!! #197178
26/11/2003
0
Tentei utilizar pela primeira vez o Try... Except e o erro acontece na linha
do loadfromfile e o processamento não passa para o except...
Tenho uma tabela chamada TblVestido e no campo FotoVestido tenho o
path da foto ex: C:\Vestido\Vestido.jpg
Ao tentar usar...
Try
PctFotoVestido.Picture.loadfromfile(TblVestidoFotoVestido.value)
except
Mensagem tipo ´Foto nao existe no diretorio´
O Delphi para com erro no loadfromfile...
Somente funcionou quando fiz o seguinte...
If fileexists(TblVestidoFotoVestido.value) then
PctFotoVestido.Picture.loadfromfile(TblVestidoFotoVestido.value)
else
....
entao qual é a do Try ???????????????????????
porque ao não achar o arquivo ao inves de dar erro ele não passou a executar o except???
resumindo,,, nao aprendi a usar o recurso do try ...
Alguem me dá um help???????????? :?:
Emerson
Programador Clipper desde 1990
Programador Delphi desde 2003 (SOCORROOOOOOOOOOOOOOOO!!)
Emerson_
Curtir tópico
+ 0Posts
26/11/2003
Rafael Heise
try
{ código }
except
{ código quando der erro }
end;
e caso queira a mensagem de erro
try
{ código }
except
on E: Exception do
begin
{código quando der erro.}
{para acessar a mensagem use E.Message}
end;
end;
bom.. sempre foi assim.. mas se você quer um conselho, eu digo pra evitar ao máximo usar try except. se você pode fazer um teste antes de dar erro para evitar de dar erro, use, no seu caso, o FileExist(...) ok?
tente evitar ao máximo usar try except, porque isso não é coisa de programador de verdade... se você sabe onde pode dar um erro, e se você pode fazer um teste para ver se o que você quer fazer vai funcionar, faça. Isso deixa o código mais claro e caso exista outros tipos de erros, você saberá mais facilmente. valeu?
Gostei + 0
26/11/2003
Beppe
Como o zerneo disse, a exceções e manipuladores servem para casos [b:89dea0909a]excepcionais[/b:89dea0909a]. Embora há casos que haveria razão em usá-lo, para fins de uma aplicação mais robusta. Pense, o arquivo pode existir, mas não contém uma imagem. Então você deve refletir bem na escolha entre testes e exceções, falow.
Gostei + 0
26/11/2003
Leonardo.moulin
Se eu não estiver enganado, o que vc está tentanto fazer, é gravar a imagem inteira no banco de dados e não só o path da imagem !!
Sendo assim caso não ache o arquivo ele apenas retorna file not found
e isso não caracteriza um erro, pois na verdade ele não encontrou mesmo o arquivo, ao menos que a imagem esteja na pasta raiz do executável da aplicação !! Me corrijam se eu tiver errado.
Como vc só deseja armazernar o path da imagem, vc pode fazer o seguinte.
Insira no form um componente OpenDialog.
OpenDialog1.Execute // EXECUTA O OPENDIALOG
if OpenDialog1.FileName <> ´´ then // VERIFICAR SE FOI SELECIONADO ALGUM ARQUIVO, CASO SIM...
showmessage(OpenDialog1.FileName); // MOSTRA NA TELA O PATH DO ARQUIVO SELECIONADO
no exemplo eu mostro na tela o path do arquivo selecionado, mas vc pode modificar de forma que insira em seu banco de dados como uma string qualquer.
REPARE NÃO É NECESSÁRIO UTILIZAR TRY....EXCEPT...
ESPERO TER AJUDADO
Leonardo Moulin
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)