try语句中怎么在发生错误时重试
try语句中如何在发生异常时重试
想要实现以下效果
就是在文件处理是发生异常,比如在文件被占用,这时候可以让用户接触占用重新回到文件处理代码再次执行。
原以为可以通过label,然后goto来实现,结果编译会报:'GOTO LBegin' leads into or out of TRY statement 的错误。
在Try里如何实现重试的代码呢?谢谢
------解决思路----------------------
用repeat ... until xxxx ,包绕在 try except end 周围
------解决思路----------------------
用一个变量保存一下是否Try成功,如果成功跳出循环,否则一直循环比如
BOk := false;
while not BOK do
begin
try
dosomething;
BOk := true;
except
end;
end;
想要实现以下效果
try
处理文件。。。。。代码
except
on E: Exception do
begin
li_rtn := MessageBox(self.Handle, pchar(e.Message), '安装错误', MB_ABORTRETRYIGNORE);
if li_rtn=IDRETRY then //重试
begin
回到处理文件代码处继续处理
end;
end;
end;
就是在文件处理是发生异常,比如在文件被占用,这时候可以让用户接触占用重新回到文件处理代码再次执行。
原以为可以通过label,然后goto来实现,结果编译会报:'GOTO LBegin' leads into or out of TRY statement 的错误。
在Try里如何实现重试的代码呢?谢谢
------解决思路----------------------
用repeat ... until xxxx ,包绕在 try except end 周围
------解决思路----------------------
用一个变量保存一下是否Try成功,如果成功跳出循环,否则一直循环比如
BOk := false;
while not BOK do
begin
try
dosomething;
BOk := true;
except
end;
end;