devxlogo

Setting a New Handler

Setting a New Handler

The function std::set_new_handler() installs a function to be called when the global operator new or the global operator new[] fail. By default, operator new throws an exception of type std::bad_alloc in the event of a failure (note that Visual C++ still retains the traditional version of new, which doesn’t throw an exception in this case). set_new_handler() and its associated typedef’s are declared in the header as follows:

 typedef void (*new_handler) ();new_handler set_new_handler( new_handler new_p );

set_new_hanlder() returns the address of the current handler and installs an overriding handler.
The following program overrides the default behavior of the global operators new and new[]. Instead of throwing an std::bad_alloc exception, it invokes the user-defined function my_handler():

 #include using namespace std;class my_exception{};void my_hanlder(){  cerr 

devx-admin

Share the Post: