std::bad_alloc

Started by
3 comments, last by beebs1 16 years, 11 months ago
Hiya, Does anyone know how to throw so that a std::bad_alloc exception is generated? throw std::bad_alloc; does not seem to work. I just need to test it's exception handler. Thanks for any help :)
Advertisement
if you really need to just do a test, call something like
char *x = new char[unsigned long(-1)];
The following works fine here:

#include <new>#include <iostream>int main(){   try {      throw std::bad_alloc();   } catch (std::bad_alloc&) {      std::cout << "bad_alloc caught\n";   }}
Quote:Original post by KulSeran
if you really need to just do a test, call something like
char *x = new char[unsigned long(-1)];


What makes you think that'll work? It may work in many cases, but I don't see why it have to throw a std::bad_alloc. Also if you have used set_new_handler it could result in your new_handler being called.

As long as you have included the "new" header you should be able to throw std::bad_alloc normally.
Thanks for your replies, throw std::bad_alloc(); worked fine. I omitted the brackets for some reason, which is why it wouldn't compile. I just needed to test that particular code path.

Thanks again.

This topic is closed to new replies.

Advertisement