Home C++ 개념 정리 : 예외 처리
Post
Cancel

C++ 개념 정리 : 예외 처리

예외 처리

  • 예외(exception)
    • 컴퓨터 시스템이 동작하는 도중에 예상하지 못한 오류가 발생하여, 실행되고 있던 프로그램이 중지되는 것
  • 예외 처리(exception handling)
    • 예외 상황을 처리할 수 있도록 코드의 흐름을 바꾸는 행위
  • C++은 언어 차원에서 예외 처리 문법을 제공한다.

try, throw, catch 문

  • 예외 처리 구문
    • try 문
      • 예외가 발생할 가능성이 있는 코드 블록
    • throw 문
      • try 문에서 발생한 오류에 대한 정보를 전달
    • catch 절
      • 발생한 예외에 대해 예외 핸들러가 처리할 내용을 담은 코드 블록
      • 자신이 처리할 수 있는 예외 타입을 지정할 수 있다.
        • 특정 예외 타입 대신에 줄임표(…)를 사용할 수 있다.
          • 이러한 줄임표를 사용한 catch 절의 위치는 언제나 catch 절 중 맨 마지막에 위치해야 함.

예외 처리 메커니즘

  1. try문에 도달해 해당 코드를 실행함
  2. 예외 발생 X : catch절 다음의 코드로 이동
  3. 예외 발생 O : 적절한 catch절을 찾는다.
    1. 스택에서 try문과 가장 가까운 catch절부터 체크
    2. 적절한 catch절 발견 X
      1. 적절한 catch문을 못찾으면, 바로 다음 바깥쪽 try문 다음의 catch절을 차례로 체크
      2. 가장 바깥쪽 try문까지 계속 체크
      3. 끝까지 적절한 catch절을 못찾았다면, 미리 정의된 terminate() 함수가 호출됨
    3. 적절한 catch절 발견 O
      1. throw문의 피연산자는 예외 객체의 형식 매개변수로 전달됨
    4. 모든 예외 처리가 끝나면 catch절 바로 다음으로 이동.
This post is licensed under CC BY 4.0 by the author.

miniRT ① Subject

miniRT ② 배경 지식