what if your create failed due to some other process having the process
leak, and you'd like your process, which has done nothing wrong, to get
out of the mess cleanly?
One of the problems is that the program that finds itself unable to
proceed for lack of resources may not be able to recover because it
needs resources to run the recovery mechanism.
This was dicussed a long time ago wrt memory allocation for Modula 3.
See, for example:
http://www.elegosoft.com/pm3/intro/questions/new.html
(I'm sure that somewhere I've seen a more basic description of why
handling out-of-memory conditions is diffucult, but I can't find it
right now.)
I'd be the first to admit that this is a somewhat different case because
M3 relies heavily on dynamic memory allocation and garbage collection,
but I think that in general terms the issues are the same.
Martin