Recent

Author Topic: tratamento de erros no free pascal  (Read 359 times)

kirkorian

  • Newbie
  • Posts: 4
tratamento de erros no free pascal
« on: August 05, 2022, 02:16:59 pm »
Olá.
Alguém poderia indicar algum material ou explicar como faço para capturar e lidar com erros no Free Pascal? A única possibilidade de erro no programa seria a tentativa do usuário abrir um arquivo do disco cujo nome não exista e preciso que o programa não pare.
Não uso o Lazarus, só o free pascal.
Obrigado.

Laprado

  • New member
  • *
  • Posts: 8
Re: tratamento de erros no free pascal
« Reply #1 on: August 05, 2022, 02:52:11 pm »
Bom dia.

A documentação a seguir está no site do Lazarus mas é totalmente compatível com o FreePascal, pois o conteúdo a seguir é referente a linguagem e não a IDE, portanto não requer o Lazarus instalado para funcionar.

https://wiki.freepascal.org/Exceptions

Montei um pequeno programa para ilustrar o problema do arquivo, para essa situação específica você pode simplesmente testar se o arquivo existe utilizando a função FileExists da unit SysUtils.

Também coloquei uma procedure com um exemplo de tratamento de erros que é feito através dos comandos try/except.

Code: Pascal  [Select][+][-]
  1. program file_test;
  2.  
  3. {$MODE DELPHI}
  4.  
  5. {$IFDEF WINDOWS}
  6. {$codePage UTF8}
  7. {$ENDIF}
  8.  
  9. uses
  10.   SysUtils;
  11.  
  12. procedure TrataErrro;
  13. var
  14.   LValor: Integer = 0;
  15. begin
  16.   try
  17.     LValor := 5 div LValor;
  18.     WriteLn('erro de divisão por zero ', LValor);
  19.   except
  20.     on E: Exception do
  21.     begin
  22.       WriteLn('Ocorreu um erro ao tentar operação: ', E.Message);
  23.     end;
  24.   end;
  25. end;
  26.  
  27. begin
  28.   if not FileExists('c:\temp\teste4.txt') then
  29.     WriteLn('Arquivo não existe.');
  30.  
  31.   WriteLn('Programa continua');
  32.   TrataErrro;
  33. end.
  34.  

 

TinyPortal © 2005-2018