abort 和 Exit 的区别(49分)

  • 主题发起人 主题发起人 fatBaby
  • 开始时间 开始时间
abort是中断正在运行的程序,而exit是不执行程序。
比如:
begin
a:=0;
exit;
b:=0;
end;
这样就不执行b:=0了。
 
Abort中止程序
Exit是退出当前涵数和过程,像C语言的Return
 
abort 能中断一个段的执行,但不是中断整个程序
 
exit 类似 return ,退出当前的函数或过程

abort 退出到一个异常触发点

try
abort
// 如果这里有10层函数的调用,abort 将一下子退出这 10 层函数,除非中间有 try...except
except // 退出到这来

end;
 
abort实质上是异常中断
exit是pascal继承的改变流程的指令
 
一般都可
 
exit是退出整个过程,abort则是返回form了吧,
 
Abort放弃程序的执行.
Exit是退出当前涵数和过程,它会有一些扫尾的工作.
是安静的退出.
 
按照 Borland 的说法,Abort 应该是一个“沉默的异常”(Silent exception),
Exit 只能退出一个子程序,而 Abort 则一直返回到最近的异常捕获点,这一点非常
方便,尤其是当你逐层调用很深的子过程去分析一个结果时,不需要逐层返回布尔值。
Abort 不会触发默认的异常中断。

See it ?

From: BaKuBaKu
 
Abort 中止当前正在执行的过程,即该过程失效,而exit 只是结束该过程。看下面的
程序就知道了:
procedure TForm1.FormClose(Sender: TObject
var Action: TCloseAction);
begin
// if edit1.text = 'ok' then exit
if edit1.text <> 'ok' then abort
end;
当用 exit 时,无论Edit1.text的值是不是 'ok' 都会退出,而用 Abort 则只有其值为
'ok'时才退出
 
Abort 中止正在执行的过程,而exit 只是结束该过程就像C中的exit()一样!
 
我试了一下,
WebBar 是正确的

BaKuBaKu也对,但太晚了,分得少点了

瓜分啦...
 
多人接受答案了。
 
后退
顶部