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

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

#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


티스토리 툴바