lazarus中的try except

讀取下txt文件試了下用try except來容錯file not found錯誤。發現運行的時候總是報錯。

program Project1;
 uses sysutils;
 const file_name='C:\Users\FanXiaoLei\Desktop\15.txt';
 var stextF:textfile;
   s :string;
begin
 try
  begin
       assignFile( stextF,file_name);
       reset(stextF);
       while not eof(stextF) do
       begin
            readln(stextF,s);
            writeln(utf8decode(s));
       end;
       closeFile(stextF);
  end;
  except
   on e:EInOutError do writeln('error:',e.message);
  end;
   readln;
end.

繼續的話還會報錯:

 

 

後來去英文論壇上爬了幾樓。意思是try except不是很好的體驗。可以通過其他的辦法進行規避使用。後來有人提了下使用<運行不帶調試>可以運行通過。我試了下確實可以的。

改用運行不調試以後就正常了: 

 

當然規避使用也是可以的。我上面讀取文件出現file not found錯誤可以先檢查文件是否存在然後再決定後續處理就可以。 

program readtxt;
 uses sysutils;
 const file_name='C:\Users\FanXiaoLei\Desktop\14.txt';
 var stextF:textfile;
   s :string;
begin
  if FileExists(file_name) then
  begin
       assignFile( stextF,file_name);
       reset(stextF);
       while not eof(stextF) do
       begin
            readln(stextF,s);
            writeln(utf8decode(s));
       end;
       closeFile(stextF);
  end
  else
      writeln(utf8decode('文件未找到'));
   readln;
end.  

 

正常讀取時:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章