我觉得如果实在有必要释放自己的话,加个abort即可
因为一个构造函数产生异常会自动释放
见system中的
function _ClassCreate(AClass: TClass
Alloc: Boolean): TObject;
有这么一段
@desc:
JMP _HandleAnyException
{ destroy the object }
MOV EAX,[ESP+8+9*4]
MOV EAX,[EAX].TExcFrame.ConstructedObject
TEST EAX,EAX
JE @@skip
MOV ECX,[EAX]
MOV DL,$81
PUSH EAX
CALL dword ptr [ECX].vmtDestroy
POP EAX
CALL _ClassDestroy
@@skip:
{ reraise the exception }
CALL _RaiseAgain
可以看到这就是当构造函数有异常会自动释放
加一abort产生EAbort,产生一安静的异常,被Application所丢掉,
同时构造该对象下面的代码也不会执行