Parar execução do programa entre uma função e outra
Olá pessoal, tudo blz?
Estou escrevendo uma rotina de importação de dados, em Delphi 7 com MSSQL Server 2000, que são feitas através de 7 passos. Para cada passo criei uma função que executa determinada fase deste processo. Para isso, estou levando em consideração que se o passo 1 estiver ok, executo o passo 2 e assim até o final. O problema é quando acontece um erro entre uma função e outra.
Por exemplo, no passo 3 ocorreu um erro. Hoje estou dando um Application.Terminate nos erros ou exceções que acontecem. Se faço apenas um Break, ele pára esta função mas executa a próxima. O que gostaria de fazer é somente parar o processo, sem fechar a aplicação por inteiro, para que o usuário possa avaliar o arquivo de log ou importar outro arquivo.
Como faço para criar este controle de execução?
Obrigado pelas dicas! :-)
Estou escrevendo uma rotina de importação de dados, em Delphi 7 com MSSQL Server 2000, que são feitas através de 7 passos. Para cada passo criei uma função que executa determinada fase deste processo. Para isso, estou levando em consideração que se o passo 1 estiver ok, executo o passo 2 e assim até o final. O problema é quando acontece um erro entre uma função e outra.
Por exemplo, no passo 3 ocorreu um erro. Hoje estou dando um Application.Terminate nos erros ou exceções que acontecem. Se faço apenas um Break, ele pára esta função mas executa a próxima. O que gostaria de fazer é somente parar o processo, sem fechar a aplicação por inteiro, para que o usuário possa avaliar o arquivo de log ou importar outro arquivo.
Como faço para criar este controle de execução?
Obrigado pelas dicas! :-)
Jorgeolimpia
Curtidas 0
Respostas
Beppe
22/02/2005
Uma solução quick´n´dirty seria manter uma variável que diz o estado do processo, digamos, TudoOK: Boolean. Ela começa como True, e ao surgir um erro, vc atribui False pra ela e termina a função corrente. No início de cada função, faça um teste nesta variável, se ela for False(significando que um passo anterior zebrou), apenas de um Exit.
GOSTEI 0
Andremuller
22/02/2005
Crie uma excessão que pare a execussão da aplicação.
raise Exception.Create(´Ocorreu um erro.´)
ou talvez
on E: Exception do
raise Exception.Create(´Ocorreu um erro.´ + E.Message) ;
raise Exception.Create(´Ocorreu um erro.´)
ou talvez
on E: Exception do
raise Exception.Create(´Ocorreu um erro.´ + E.Message) ;
GOSTEI 0
Jorgeolimpia
22/02/2005
Obrigado Beepe, sua dica realmente funcionou com o que eu precisava!
Sucesso!
Jorge Olimpia
Sucesso!
Jorge Olimpia
Uma solução quick´n´dirty seria manter uma variável que diz o estado do processo, digamos, TudoOK: Boolean. Ela começa como True, e ao surgir um erro, vc atribui False pra ela e termina a função corrente. No início de cada função, faça um teste nesta variável, se ela for False(significando que um passo anterior zebrou), apenas de um Exit.
GOSTEI 0