구조적 예외 처리와 관련된 규칙

예외는 함수를 여러 개 건너서도 전달이 가능하다.

#include <iostream>

using namespace std;

void A();
void B();
void C();

int main()
{
    try
    {
        A();
    }
    catch(int ex)
    {
        cout << "예외 = " << ex << endl;
    }
}

void A()
{
    B();
}

void B()
{
    C();
}

void C()
{
    throw 337;
}
  • 보는 것과 같이 함수에 아무리 깊게 들어가게 되더라도 던져진 예외는 즉시 Catch가 받아서 처리
  • 예외는 자신의 타입에 맞는 catch블록을 찾을 때까지 함수를 거슬러 올라간다.
  • main()함수까지 갔는데도 알맞은 catch블록을 못 찾았다면 프로그램이 비정상 종료
저작자 표시
신고

'컴퓨터 언어 > C++' 카테고리의 다른 글

파일 입출력  (0) 2012.12.28
예외 처리, 예외에 안전한 코드 만들기  (0) 2012.12.24
예외 처리, 함수 깊숙히  (0) 2012.12.24
예외 처리  (0) 2012.12.21
오버라이딩  (0) 2012.12.20
가상함수를 이용한 다형성 구현  (0) 2012.12.20