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.  

 

正常读取时:

猜你喜欢

转载自blog.csdn.net/qq_24499417/article/details/105340640