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