본문 바로가기

exception3

CPP Exception - 3 std::exception (예외 클래스) 여태까지 조건문을 이용하여 예외 상황임을 판단하여 직접 throw로 예외를 던졌었습니다. std::exception 클래스를 통해 시스템 상 내부에서 알아서 발생한 예외를 throw 해줍니다. std::exception은 CPP의 표준 클래스로 여러 종류의 예외를 나타내는 자식 클래스들을 가지고 있습니다. 다음과 같이 벡터 클래스의 길이보다 1 더 큰 크기를 재할당시켜 에러가 나도록 유도해봅시다. #include #include #include using namespace std; int main() { try { vector v; v.resize(v.max_size()+1); } catch(std::exception & e) { cout 2021. 11. 28.
CPP Exception - 2 다른 함수를 호출했을 때 예외처리 다음과 같이 try문 안에서 함수를 호출한 후 해당 함수에서 try, catch를 사용하지 않고 throw를 보내면 어떻게 될까요? catch문이 존재하지 않아 에러가 발생하게 될까요? 다음과 같이 함수를 작성해보고 실행해봅시다. #include using namespace std; void func() { throw 1; } int main() { try { func(); } catch(...) { cout 2021. 11. 28.
CPP Exception - 1 프로그램을 작성하다보면 문법적인 오류가 아니라 논리적인 오류로 프로그램이 의도치 않는 동작을 하는 경우가 있습니다. 예를 들어, 다음과 같이 1부터 9의 숫자를 입력받고 해당 숫자를 출력하는 프로그램을 만들어봅시다. #include using namespace std; int main() { int n; cin >> n; cout n; if (n 9) { cout 2021. 11. 27.