Fórum Erros no Delphi (Tratando exceções) #572437
09/12/2016
0
olá, gostaria de saber (mais por curiosidade, e dependendo posso ate adaptar no meu sistema) se é possível qndo o sistema gerar um erro independente do lugar por ter varios chamados de funcoes e nao ser tao facil adicionar TRY EXCEPT em todas as funcoes, eu executar um comando qlqr (por exemplo fechar um form q eu abro em cima da tela do sistema mandado aguardar a execucao) qndo gerar esse erro? tipo eu fiz um conversor de bases de dados e tentei tratar o maximo e excessoes q pudessem ser geradas, mas se caso acontecer um imprevisto ele alerta uma mensagem do do erro na tela e caso nao seja algo q foi tratado ele para a conversao mas o form escrito 'Aguarde o final da conversão' continua em cima da tela, e como eu criei sem o botao 'X' para fechar o usuario tem q impressao de q ainda esta fazendo a conversao... alguem sabe se algo assim é possivel no DELPHI?
Bruno
Curtir tópico
+ 0
Responder
Posts
09/12/2016
Ismael Machado
Você pode utlizar o evento Application.OnException para capturar qualquer erro que aconteça em sua aplicação, e assim exibir a tal tela que você quer. Mas mesmo assim, quando um erro acontecer todo o sistema irá parar, sendo obrigado a recomeçar o processo.
Acho que sua única alternativa para conseguir capturar um erro e ignorar ele a ponto de continuar executando os próximos passos naturalmente seria utilizar algum gerenciador de exceções como EurekaLog ou MadExcept, mas ambos são componentes pagos.
Acho que sua única alternativa para conseguir capturar um erro e ignorar ele a ponto de continuar executando os próximos passos naturalmente seria utilizar algum gerenciador de exceções como EurekaLog ou MadExcept, mas ambos são componentes pagos.
Responder
Gostei + 0
10/12/2016
Tone Costa.
Geralmente faço assim.
Try
painel1.visible := true;
Try
Try
funcao01;
funcao02;
procedure01:
procedure02;
except
on e : Exception do
begin
showMessage(e.message);
end;
end;
finally
painel1.visible := false;
end;
Try
painel1.visible := true;
Try
Try
funcao01;
funcao02;
procedure01:
procedure02;
except
on e : Exception do
begin
showMessage(e.message);
end;
end;
finally
painel1.visible := false;
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)