C++

[class] C++ - Exceptions (= Try...Catch..) - 에러 제어

6,062
목차
  1. Exceptions 정의
  2. try...catch... 구문
  3. throw의 exception 자료형 모르는 경우

 

Exceptions 정의

 

에러는 (의도적, 잘못 입력, 예측 불가 등) 여러 요인으로 생기는데,

C++은 프로그램 실행 중 에러 발생 시, 멈춘 후 에러 메세지를 생성.

즉, 정상적 실행의 예외적 경우 (= 오류)를 다루는 기술을 의미함.

 

 

try...catch... 구문

[구문]

 

try {

  //  오류 테스트 할 실행 코드.

  throw exception; // 문제 발생 시, 예외 처리.  (= 오류 생성)

}

catch(Exception e) {

  //  try 구문 안에서 오류 발생 시 실행할 코드.

}

 

PS. try...catch... 구문은 쌍으로 함께 사용.


[예제]

파일명: main.cpp


#include <iostream>

using namespace std;


int main() {

  try {

    int level = 2;

    if (level >= 3) {

      cout << "입장 가능.";

    } else {

      throw (level);

    }

  }

  catch (int lv) {

    cout << "접근 불가. level 3 이상 입장 가능.\n";

    cout << "Level : " << lv;  

  }

  return 0;

}

 

결과값:

접근 불가. level 3 이상 입장 가능.

Level : 2


PS1. 코드 설명.

※ level 3 미만 시, try 구문에서 예외처리 후 catch 구문에서 처리.

※ level 3 이상 시, try 구문 실행 후, catch 구문을 건너뜀.

 


PS3. 에러 코드 번호 반환도 가능.

※ 각 번호별로 에러 내용 정의 후, 해당 에러 번호 지정 가능.

 

#include <iostream>

using namespace std;


int main() {

  try {

    int level = 2;

    if (level >= 3) {

      cout << "입장 가능.";

    } else {

      throw 505;

    }

  }

  catch (int error) {

    cout << "접근 불가. level 3 이상 입장 가능.\n";

    cout << "에러번호 : " << error;  

  }

  return 0;

}

 

결과값:

접근 불가. level 3 이상 입장 가능.

에러번호 : 505

 

throw의 exception 자료형 모르는 경우

 

try 구문 안의 throw 타입 모르는 경우,

catch 구문 매개변수에 점 3개(...) 사용.

즉, ... 매개변수는 어떤 타입의 Exception이든 처리 가능.

 


[예제]

 

#include <iostream>

using namespace std;


int main() {

  try {

    int level = 2;

    if (level >= 3) {

      cout << "입장 가능.";

    } else {

      throw 505;

    }

  }

  catch (...) {

    cout << "접근 불가. level 3 이상 입장 가능.\n";

  }

  return 0;

}

 



분류 제목
basic C++ - Home (입문) - 추천 링크
basic C++ - Intro (소개) - 용도・특징
basic C++ - Start (시작) - Code::Blocks (코드 블럭스) 설치/실행/세팅. ※ 한글 깨짐 해…
basic C++ - Syntax (구문)
basic C++ - Output (출력)
basic C++ - New Lines (줄바꿈)
basic C++ - Comment (주석)
basic C++ - Variable (변수) ★ ※ 상수
basic C++ - User Input (사용자 입력)
basic C++ - Data Type (데이터 타입) - 자료형
basic C++ - Operator (연산자)
basic C++ - String (문자열)
basic C++ - Math (수학)
basic C++ - Boolean (참거짓)
basic C++ - If ... Else - (이프 조건문) ★
1/3
목록
  • 채팅방
  • 필독
1. 채팅창 헤드에서 접속자 확인 2. 닉네임 클릭해 1:1 채팅 가능 3. 닉네임 클릭해 귓속말 가능 4. 닉네임 클릭해 호출하기 가능 5. 우하단 클릭해 환경 설정 가능 6. 의뢰글 작성 후 의뢰 상담 가능 7. 질문글 작성 후 질문 상담 가능 8. 채팅방에 개인정보 입력 금지 9. 채팅방에 광고 욕설 비방 금지
 홈  PC버전 로그인 일본어
웹디자인언어
서버관리언어
고급코딩언어
그누보드
제작의뢰
Q&A
커뮤니티
웹유틸
회원센터
홈짱 PC버전 로그인