Forum > Portuguese

tratamento de erros no free pascal

(1/1)

kirkorian:
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:
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  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---program file_test; {$MODE DELPHI} {$IFDEF WINDOWS}{$codePage UTF8}{$ENDIF} uses  SysUtils; procedure TrataErrro;var   LValor: Integer = 0;begin  try    LValor := 5 div LValor;    WriteLn('erro de divisão por zero ', LValor);  except    on E: Exception do    begin      WriteLn('Ocorreu um erro ao tentar operação: ', E.Message);    end;  end;end; begin  if not FileExists('c:\temp\teste4.txt') then    WriteLn('Arquivo não existe.');   WriteLn('Programa continua');  TrataErrro;end. 

Navigation

[0] Message Index

Go to full version