상세 컨텐츠

본문 제목

C++ 표준 예외

C++/C++98

by deulee 2023. 8. 8. 21:22

본문

C++ 표준 라이브러리는 모든 예외의 루트로 사용할 수 있는 exception이라는 클래스를 정의한다.

 

이 클래스는 별다른 기능을 가지고 있지는 않고 문자열 포인터를 리턴하는 "what"이라는 가상 함수를 제공한다. (추상 클래스)

 

표준 라이브러리는 exception으로부터 표준 예외 클래스들을 파생해 놓았고 크게 "논리 에러"와 "런타임 에러"로 나누어진다.

 

 

이 표준 예외들은 C++의 연산자들이 던지는 예외들이다.

 

대표적인 예로 다음 예시를 보도록 하자.

 

C++ 컴파일러는 new 연산자가 할당에 실패할 때 bad_alloc 예외를 발생시킨다.

#include <iostream>

int main(void)
{
	try {
		int* i = new int[100000000];
	}
	catch (std::bad_alloc& b) {
		b.what();
	}
}

물론 위의 예제는 에러를 일으키기에는 너무 적은 메모리지만 bad_alloc 예외를 던진다는 것만 알고 있으면 된다.

 

'C++ > C++98' 카테고리의 다른 글

C++ 예외의 비용  (0) 2023.08.09
C++ 예외 지정  (0) 2023.08.09
C++ try 블록 함수  (0) 2023.08.08
C++ 예외 객체  (0) 2023.08.08
C++ 예외 처리  (0) 2023.08.08

관련글 더보기