raise用于引发一个异常
if not CreateDir(StrDir) then
begin
raise Exception.Create('不能新建目录,请手工新建这目录。' + #13 + StrDir);
exit;
end;
raise后不用Exit了。后面的语句全部被中断执行,直接往上一层函数跳。如果上层函数没有例外处理继续跳。知道顶层使用缺省的例外处理程序。
简单地说,raise用于引发一个异常,这个异常不一定是系统异常,也可以是自定义的,例如,如果你的某个变量有取值范围限制,当输入值超出这个范围时,你可以使用raise引发一个异常(当然也可以用其它方法处理)。这样做的好处是,可以在应用程序中统一处理异常。
//例1:
begin
raise Exception.Create('抛出异常');
end;
--------------------------------------------------------------------------------
//例2:
begin
raise Exception.CreateFmt('%s %d', ['错误代码:', 999]);
end;
--------------------------------------------------------------------------------
//例3:
var
exc: Exception;
begin
exc := Exception.Create('发现异常');
raise exc;
end;
浙公网安备 33010602011771号