Fórum Falha no Try Except #282869

24/05/2005

0

Saldaçoões a todos.

Estou com um problema com o uso do try except.Uso uma rotina para escolher um relatorio que serar mostrado ao meu usuario,ela funciona bem a nõ ser quando o usuario informa uma data que não existe por exemplo 31/06/2005.A estrutura que estou usando e o codigo a baixo, so que o erro ocorre e ele simplismente vai para o fim da procedure.A fonte de dados e um adoquery e aconsulta já estaria realizado.

procedure MetodoExmplo
begin
try
case i do
1:begin
linha que chama o relarotio e gera o erro
2:2 linha de codigo
3:3linha de codigo
end;
except
showmessage(´teste´);
end;
end;

Espero que possam me ajudar obrigado


Rogeriorock

Rogeriorock

Responder

Posts

24/05/2005

Marco Salles

so que o erro ocorre e ele simplismente vai para o fim da procedure


bem eu não sei se voce esqueceu , mas esta faltando instruções no seu código

procedure MetodoExmplo 
begin 
try 
case i of
1:begin 
linha que chama o relarotio e gera o erro 
end;
2  linha de codigo 
3:linha de codigo 
end; 
except 
on e:econverterror do //esta faltando esta linha
showmessage(´teste´); 
end; 
end;

voce esqueceu ou não a colocou :?: :?: :?:


Responder

Gostei + 0

25/05/2005

Rogeriorock

Valeu masnão esquici somente podei um esboso doque estou fazendo,mesmo assim obrigado pela atenção


Responder

Gostei + 0

25/05/2005

Marco Salles

Valeu masnão esquici somente podei um esboso doque estou fazendo,mesmo assim obrigado pela atenção


so que o erro ocorre e ele simplismente vai para o fim da procedure.A fonte de dados e um adoquery e aconsulta já estaria realizado.



Então abaixo no on e:econverterror do // refaça a consulta , colocando uma data válida Padrão ou limpe a consulta e informe que a data esta errada...É para isto que existe o Tratamento de exceçoes, apesar do própio delphi querer dar continuidade

:?: :?: :?: :?: :?: :?:

on e:econverterror do //esta faltando esta linha
begin
// corrija e informe
end;


Responder

Gostei + 0

25/05/2005

Rogeriorock

Bem acho que não fui claro o bastante.

Estou justamente tentando fazer isto que você falou eu sei para que serve try except e já o usei bastante.Sendo que neste caso não sei porque (se soubece não estaria no forum),o erro ocorre e ele simplesmente não entra no bloco except indo direto para o fim da procedure e abrindo o relatorio em branco


Responder

Gostei + 0

25/05/2005

Marco Salles

o erro ocorre e ele simplesmente não entra no bloco except indo direto para o fim da procedure e abrindo o relatorio em branco


duas tentativas ...

1) coloque uma exceção geral , ao inves de e:econverterrodo

tipo isto
on e:exception do

2) Use dois Blocos Try Try Alinhados com a Intrução Finally

try try
 bla bla
except
on e:exception do
  deuerro:=True;
end;
finally
  if deuerro then
    begin
       //limpa e informa 
    end;
end;
end;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar