Exemplo do comando TRY
Alquem pode me dar um exemplo do comando TRY
Francisco.gorgulho
Curtidas 0
Respostas
Michael
09/02/2003
Amigo, o comando try...except...end serve para tratar erros. Aí vai um exemplo:
var Resultado : integer;
try
Resultado := 10 div 0;
except
ShowMessage(´Divisão por zero detectada´);
end;
Os comandos entre o Try e o Except serão executados se não contiverem erros, caso contrário, o q estiver depois do except será executado.
Espero ter ajudado!
Michael :D
var Resultado : integer;
try
Resultado := 10 div 0;
except
ShowMessage(´Divisão por zero detectada´);
end;
Os comandos entre o Try e o Except serão executados se não contiverem erros, caso contrário, o q estiver depois do except será executado.
Espero ter ajudado!
Michael :D
GOSTEI 0
Paulo
09/02/2003
Outro exemplo pode ser o Try..Finally..End
Assim: Digamos q vc tenha um Form Available
Try
Form1:=TForm1.Create(Self);
Form1.ShowModal;
Finally
Form1.Free;
End;
Assim: Digamos q vc tenha um Form Available
Try
Form1:=TForm1.Create(Self);
Form1.ShowModal;
Finally
Form1.Free;
End;
GOSTEI 0
Rafael Heise
09/02/2003
Bom ... os dois casos existentes são o Try Except end; e o try Finally end; . Os dois casos servem para tratamento de erros, mas a diferença entre os dois é a seguinte. No caso do Try Except End; é para o caso de se ocorrer algum erro, você tratá-lo sem que se perca dados ou alguma coisa assim, como no exemplo da divisão por 0. Você poderia ter uma função que retornasse a divisão de dois valores passados, e dentro dessa função usar o Try Except, e caso ocorra algum erro como o dividendo ser zero, você avisa o usuário sem que seja uma mensagem do próprio delphi, ou seja, uma mensagem tratada por você. Exemplo :
function dividir(Divisor, Dividendo : Extended): Extended;
begin
try
result := Valor1/Valor2;
except;
ShowMessage(´Divisão não pode ser concluida´); // ao dar erro
end;
end;
já no caso do Try Finally, é basicamente a mesma coisa, mas ao invés dele executar o que está dentro do finally somente se ocorrer um erro, ele ocorre sempre, ocorrendo erro ou não. Isso é útiç para o caso de você criar uma variável e for fazer alguma coisa com ela e você precisa sempre tirar ela da memória, destruí-la. Mas se der erro no meio da função ela não vai ser destruída porque você sempre destrói no final. Então se usa o try Finally. Exemplo
procedure chamaTela;
var Form : TFormCalculadora;
v1,v2 : real;
begin
try
Application.CreateForm(Form,TSuaClasseForm);
... {Seu Código}
Form.ShowModal;
v1 := Form.Valor1;
v2 := Form.Valor2;
ShowMessage(FloatToStr(v1/v2)); // aqui da erro
finally
form.Free; // sempre executa esse comando
end;
end;
.... dessa forma você garante que mesmo dando erro ou não dando erro, você vai destruir a form e vai liberar a memória.
espero ter sido claro....
abraços...
function dividir(Divisor, Dividendo : Extended): Extended;
begin
try
result := Valor1/Valor2;
except;
ShowMessage(´Divisão não pode ser concluida´); // ao dar erro
end;
end;
já no caso do Try Finally, é basicamente a mesma coisa, mas ao invés dele executar o que está dentro do finally somente se ocorrer um erro, ele ocorre sempre, ocorrendo erro ou não. Isso é útiç para o caso de você criar uma variável e for fazer alguma coisa com ela e você precisa sempre tirar ela da memória, destruí-la. Mas se der erro no meio da função ela não vai ser destruída porque você sempre destrói no final. Então se usa o try Finally. Exemplo
procedure chamaTela;
var Form : TFormCalculadora;
v1,v2 : real;
begin
try
Application.CreateForm(Form,TSuaClasseForm);
... {Seu Código}
Form.ShowModal;
v1 := Form.Valor1;
v2 := Form.Valor2;
ShowMessage(FloatToStr(v1/v2)); // aqui da erro
finally
form.Free; // sempre executa esse comando
end;
end;
.... dessa forma você garante que mesmo dando erro ou não dando erro, você vai destruir a form e vai liberar a memória.
espero ter sido claro....
abraços...
GOSTEI 0