Exit和Abort有什么区别和联系

来源:互联网 发布:拍双重曝光软件 编辑:程序博客网 时间:2024/04/29 19:54

Exit 是跳出当前代码块,也就是当前函数,跳出后是要继续向下执行的(如果有后续代码)。

Abort 是从 EAbort 过来的,可以激发 exception,其实质就是 Abort = RaiseException(),是一个不出现对话框的异常。所以 Abort 的行为和异常是一样的,其代码执行顺序也是follow异常的流程。


例如:
try
  (1) //执行了
  abort;
  (2) //不执行
exception
  (3) //执行了
end;
用 Abort 能够执行 exception 里边的代码,但是如果用 Exit,就直接离开,不管 exception。

例如: 
procedure p1;
begin
  p2;
  p3;
end;
procedure p2;
begin
  abort; //exit;
end;
procedure p3;
begin
  //showmessage()..
end;

如果用 Abort,则执行不到 P3,如果用 Exit 就能够执行到 P3。

例子:  
  .......................  
  var  
      i   :   integer;  
  begin  
      for   i   :=0   to   10   then  
      begin  
              if   i=1   then  
              exit/abort;//exit将直接跳出该过程   abort中断循环但下面的过程继续执行  
      end;  
      .................  
  end;

Exit直接退出,Abort还要执行except后的错误信息。