Another quick question!

When standard new cannot allocate the requested storage in C++ which of the following does it do? (standard behaviour). (can be more than one answer)

1 - throws a bad_alloc exception
2 - throws an insufficient_memory exception
3 - returns null
4 - returns silently with no effect on the expression
5 - logs an error message to the mem_err.log file


I would have said definitly 1, any other thoughts or interesting info about the others?

Is there any way I can force this error so I can try it out?