ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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 처리자의 설치를 제거한다.
    • 예외를 던진다.
    • 복귀하지 않고 프로그램을 종료한다.

     

    댓글

Designed by Tistory.