C언어 C++ Programming

[C++언어]예외 처리 방법 (try, catch, throw)

끄적끄적아무거나 2022. 1. 7. 18:18
반응형

 

목차

     

     

     

     

    [C++언어]예외 처리 방법 (try, catch, throw)

     

    파이썬에서 예외 처리 방법으로 try와 except 를 사용합니다. try에서 구문에 에러가 발생해도 except로 넘어가서 처리를 할 수 있게 도와 줍니다.

     

    하지만 C 언어의 try, catch, throw는 파이썬과 달리 문법에 에러가 있으면 진행은 되지 않고 try 안에 프로그램을 테스트 하기 위해 사용 됩니다. 

     

    간단하게 설명하면 try 안에 내가 작성한 코드가 원하지 않는 방향으로 진행 되면 진행 방향에 throw를 통해 값을 던지고 catch에서는 그 값을 잡아서 원하는 형태로 출력 해 줍니다. try, throw, catch를 다시 설명하면 아래와 같습니다.

     

     

    • try : try 내부에 시험할 코드 블럭을 넣습니다.
    • throw : 예외 상황이발생했을 때 throw 를 통해 특정 값을 catch로 보냅니다.
    • catch : 예외 발생 시 throw에서 보낸 값을 가지고 catch 내부 코드를 실행 합니다.

     

     

     

    [C++언어]예외 처리 방법 (try, catch, throw) 예제

     

    예제 코드를 보면 쉽게 이해하실 수 있습니다.

     

    #include <iostream>
    using namespace std;
    
    int main() {
        try {
            int height;
            cin >> height;
            if (height > 0) {
                cout << "Your height is " << height << "\n";
            }
            else {
                throw (height);
            }
        }
        catch (int height) {
            cout << "Your height is incorrect" << "\n";
        }
        return 0;
    }

    8번 라인 : 입력 받은 height가 0보다 크면 정상 코드 9번 라인을 실행합니다.

    11~13번 라인 : height이 0이거나 음수 일 경우 예외로 인식하고 12번 라인의 throw를 실행 합니다.

    15번 라인 : 앞서 throw에서 던진 height를 입력으로 받고 16번 라인을 실행합니다. 

     

     

    결과- height이 0보다 클 때>>

    160
    Your height is 160

     

    결과- height이 0보다 작을 때>>

    -3
    Your height is incorrect

     

    반응형