title: Why doesn't new in C++ return NULL on failure
body: <p>Why doesn't <code>new</code> return <code>NULL</code> on failure? Why does it throw an exception only on failure?</p>
  
  <p>As it returns a pointer to the object on successes, why not on failure? Is there any specific reason for this behaviour?</p>