디폴트로 호출되는 핸들러는 비정상적인 종료가 발생한다는 메시지만을 남기고 시스템을 종료시키는 역할을 수행한다. 이때 아무런 메시지를 남기지 않고 시스템이 종료되기를 원한다면 메모리 핸들러가 호출되지 않도록 만들면 된다. 그러려면 다음과 같이 set_new_handler 메소드를 NULL 파라미터와 함께 호출하여 핸들러의 실행을 막으면 된다.

 set_new_handler(NULL);

 set_new_handler 는 new.h 파일을 include 해야 사용할 수 있다. 만일 디폴트 핸들러가 아닌 개발자가 지정한 함수로 대체시킬 필요가 있다면, 이때에도 set_new_handler 함수를 이용하면 된다. 예를 들어 메모리를 동적으로 할당하는데 문제가 발생할 때 newErrorHandle() 메소드가 호출되도록 만들고 싶으면 다음과 같이 하도록 한다.

set_new_handler(newErrorHnadle);

Tags: , ,

Leave a Reply