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는 마지막에 와야 한다.