-
Effective C++...47일지 2022. 8. 26. 07:23
new 처리자의 동작 원리를 제대로 이해하자
예외 발생 시 호출되는 함수
C++에는 예외 발생 시 사용자의 함수를 호출해주는 예외 지정이라는 기능이 존재한다.
void outOfMem()
{
std::cerr << "Unable to satisfy request for memory\n";
std::abort();
}
int main()
{
std::set_new_handler(outOfMem);
}
이러한 함수를 구현할 때는 다음 중 하나의 동작이 반드시 이뤄져야 한다.
- 사용할 수 있는 메모리를 더 많이 확보한다.
- 다른 new 처리자를 설치한다.
- new 처리자의 설치를 제거한다.
- 예외를 던진다.
- 복귀하지 않고 프로그램을 종료한다.