new_bad_alloc
new_bad_alloc (std::bad_alloc)
<new> 헤더에 정의되어 있어요. 할당 함수들이 저장 공간 할당 실패를 보고할 때 예외로 던지는 객체의 타입이에요.
출처: cppreference
본문
class bad_alloc;
std::bad_alloc은 할당 함수들이 저장 공간 할당 실패를 보고할 때 예외로 던지는 객체의 타입이에요. 상속 관계로 std::exception 계통에서 파생돼요.
멤버 함수
- (생성자): 새
bad_alloc객체 생성 (공개 멤버 함수) operator=:bad_alloc객체 대체 (공개 멤버 함수)what: 설명 문자열 반환 (공개 멤버 함수)
std::bad_alloc::bad_alloc
bad_alloc() throw(); // (1) until C++11
bad_alloc() noexcept; // (1) since C++11
bad_alloc( const bad_alloc& other ) throw(); // (2) until C++11
bad_alloc( const bad_alloc& other ) noexcept; // (2) since C++11
what()로 접근할 수 있는 구현 정의 널 종료 바이트 문자열을 가진 새 bad_alloc 객체를 구성해요.
-
- 기본 생성자.
-
- 복사 생성자.
new가 메모리 할당에 실패하면(operator new가 널을 반환하도록 설정된 nothrow 버전이 아니면) std::bad_alloc을 던져요.
try {
int* p = new int[1'000'000'000]; // 할당 실패 시 bad_alloc
} catch (const std::bad_alloc& e) {
std::cerr << "할당 실패: " << e.what() << '\n';
}