더북(TheBook)

1.6.2.3 잡기

예외 상황에 대처하려면 예외를 붙잡아야 한다. 이는 try-catch 블록에서 수행한다.

try {
    ...
} catch (e1_type& e1)
{ ...
} catch (e2_type& e2) { ... }

우리가 해결할 수 있는 (또는 적어도 뭔가에 관해서) 문제를 기대할 때마다 try 블록을 연다. 닫는 중괄호 뒤에서 예외를 잡아낼 수 있고, 예외의 타입과 가능하면 그 값에 따라 복구를 시작할 수 있다. 특히 다형성 타입(6.1.3절에 있는 정의 6-1 참조)이 연관되어 있을 때, 레퍼런스를 통해 예외를 잡기 권한다.[45, 주제 73] 예외가 발생하면 일치하는 타입을 갖는 첫 번째 catch 블록을 실행한다. 동일한 타입(또는 하위 타입(6.1.1절 참조))의 추가 catch 블록은 무시한다. 말줄임표(...)가 있는 catch 블록은 모든 예외를 잡는다.

try { ...
} catch (e1_type& e1) { ... }
  catch (e2_type& e2) { ... }
  catch (...) { // 다른 모든 예외들을 처리
}

물론 모든 예외를 잡는 catch는 마지막에 와야 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.