new 로 동적메모리를 할당하려고 시도할 때, 메모리가 부족하다면 std::bad_alloc 예외를 뱉는다.아예 nullptr를 뱉어버리는 malloc 보다는 처리하기 용이한 방식이다. 그런데 new를 사용할 때 마다. try ~ catch 를 하는건 코드를 복잡하게 만들 우려가 있다. 다행히도 new가 메모리 할당에 실패하면 std::bad_alloc 뿐만 아니라 std::new_handler 라는 함수를 호출한다.이 함수는 전역적으로 관리되는 함수이며, 사용자가 직접 정의할 수도 있다. new를 실패할 시 쓰레드는 my_new_handler에서 멈춘다. 한 번쯤 고민해봤던 사항이라 유익할 것 같아서 따로 기록해둔다.