[C++] Exceptions

2024. 4. 30. 00:44·C++

예외 처리

try

  • 예외가 발생할 수 있는 블록

throw

  • 예외를 던짐

catch

  • try 블록에서 예외가 발생하면 처리
  • try문 안에서 throw문을 수행하면 try문의 나머지 부분은 수행 안 됨, 이후 catch로 이동하여 수행 후 그 다음 코드 정상 수행
  • try문 안에서 throw문이 수행되지 않으면 try문의 나머지 수행, 이후 catch로 이동하지 않고 남은 코드 정상 수행
  • throw-catch에서 인자의 타입이 일치되는 예외만 처리
    • 단, char(1 byte)의 경우는 int(4 byte)에 넣을 수 있기 때문에 인자가 int 타입인 경우에도 예외 처리됨
  • catch(…) 은 모든 타입의 예외를 처리할 수 있음
  • 어떤 함수에서 예외 발생 시, 함수 내부가 아닌 함수가 호출된 곳에서 예외 전파
    • 단, 함수 내부에서 예외 해결이 가능하면 함수 호출된 곳으로 전파 안 됨
    • 함수 내부 예외 처리에서 throw로 예외를 던지면 함수 호출된 곳으로 전파됨
  • 예외가 계속 처리되지 않으면 시스템 라이브러리 함수 abort가 호출되어 프로그램 종료됨

 

예외 클래스

  • throw문장은 클래스 타입의 객체도 던질 수 있음
  • 상속받는 클래스가 있는 경우, catch 구문의 순서를 수퍼클래스가 먼저 오도록 바꾸면 수퍼클래스만 실행됨(자동 upcasting)
728x90
반응형

'C++' 카테고리의 다른 글

[C++] STL  (1) 2024.04.30
[C++] Template  (0) 2024.04.30
[C++] Polymorphism  (0) 2024.04.30
[C++] Inheritance  (1) 2024.04.30
[C++] Operators  (0) 2024.04.30
'C++' 카테고리의 다른 글
  • [C++] STL
  • [C++] Template
  • [C++] Polymorphism
  • [C++] Inheritance
nueos
nueos
  • nueos
    nueos 공부 기록
    nueos
  • 전체
    오늘
    어제
    • 분류 전체보기 (191)
      • 해커톤 (1)
      • 네이버 BoostCamp (6)
      • LG 유플러스 유레카 SW (3)
        • React (21)
        • TypeScript (2)
        • JavaScript (2)
        • HTML+CSS (5)
        • Spring (7)
        • Java (6)
        • SQL (2)
        • Algorithm (8)
        • CX (6)
        • Git (2)
        • 프로젝트 (2)
        • 스터디 (9)
        • 과제 (8)
        • 특강 (1)
      • React (3)
      • Next (0)
      • Javascript (2)
      • HTML (2)
      • CSS (9)
      • Algorithm (6)
      • Database (0)
      • OS (13)
      • C++ (24)
      • Python (1)
      • jQuery (1)
      • Django (1)
      • Git (1)
      • 개발 지식 (3)
      • 정보 보안 (22)
      • 포렌식 (1)
      • 암호 (2)
      • 기타 (4)
      • 패스트캠퍼스 FE 프로젝트십 (5)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스택
    완전 탐색
    heap
    디지털혁신
    Stack
    제주지역혁신플랫폼지능형서비스사업단
    exhaustive search
    디지랩챌린지
    큐
    기술로바꾸는세상
    제주해커톤
    Queue
    힙
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
nueos
[C++] Exceptions
상단으로

티스토리툴바