> Does New as a function return nil or does it still give a runtime error?
>
> If I want to allocate memory, but handle it gracefully if it fails,
> what are the recommended approaches?
 
In BP there is a HeapError variable which points to the default error procedure.  You can reset it to point to your own error procedure and handle the error however you like.  I don't know if this works with other Pascal compilers.
 
Frank Rubin