Zitat:
Delphi-Quellcode:
try
raise EProgrammerNotFound.Create('nope');
except
AcquireExceptionObject();
ReleaseExceptionObject(); // << this is an empty procedure
end;
Das ReleaseExceptionObject würde in diesem Code sowieso nie was machen, selbst wenn es was machen würde.
AcquireExceptionObject hängt die
Exception von dem
Exception-Block ab und gibt sie dir
und ReleaseExceptionObject würde die
Exception des
Exception-Block freigeben, welche es da aber schon nicht mehr gibt.
rein logisch sind diese beiden Codes identisch
except ReleaseExceptionObject; end;
=
except AcquireExceptionObject.Free; end;