EHeapException und Nachfahren, wie EOutOfMemory und EOutOfResources ruft man auch nicht direkt via Raise auf.
Diese sind ja nötig, wenn entsprechende Resourcen schon aufgebraucht sind und man diese Exceptions eventuell garnicht mehr erzeugen kann.
Für EOutOfMemory ruft man z.B.
OutOfMemoryError auf, welches das schon vorhandene globale Objekt nutzt.
EOutOfResources also direkt aufzurufen wäre der falsche Weg,
was demnach für einen fehlerhafte Nutzung in Delphi spricht.
Schon interessant, daß dieser Designfehler bis jetzt nicht so sehr aufgefallen ist.