I would like to know the correct way to fail the creating of an object.
I would return a NULL in c/c++ but returning a nil does not to seem to
work correctly i.e.
the code is easier to work with if it either returns valid results, or
raises
an exception - i removes the burden of testing return values in the
client
code.