在浏览System.Zip(Delphi XE2)以查看其工作原理时,我发现了这个功能:
procedure VerifyWrite(Stream: TStream; var Buffer; Count: Integer);
begin
if Stream.Write(Buffer, Count) <> Count then
raise EZipException.CreateRes(@SZipErrorWrite) at ReturnAddress;
end;
Run Code Online (Sandbox Code Playgroud)
at ReturnAddress这是让我困惑的部分.
我不知道这at是一个有效的关键字(语法高亮显示器似乎也没有识别它).
根据IDE声明它System.ReturnAddress,但我只能在(asm)代码中的某处找到它声明为标签procedure _HandleAnyException;.但系统单元充满了对它的引用.
所以我想知道的是:
ReturnAddress?Raise Exception.Create ... at ReturnAddress做什么的?如果你可以给出一个真实世界的例子,说明这将是一个有用的结构,或者你可以建议不要使用它.