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++ 예외의 비용 (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 |