투케이2K

28. (C++) try catch 구문 사용해 에러 예외 처리 및 throw 예외 발생 수행 본문

C++

28. (C++) try catch 구문 사용해 에러 예외 처리 및 throw 예외 발생 수행

투케이2K 2023. 3. 4. 15:56

[개발 환경 설정]

개발 언어 : C++

 

[소스 코드]

// -----------------------------------------------------------------------------------------
//
// Created by KGH on 2023-02-12.
//
// -----------------------------------------------------------------------------------------





// -----------------------------------------------------------------------------------------
// TODO [헤더 파일 import]

#include "Test.h"
#include <android/log.h>
// -----------------------------------------------------------------------------------------





// -----------------------------------------------------------------------------------------
// TODO [include 및 define 문 정의]
#include <iostream>
#include <string>
using namespace std;
// -----------------------------------------------------------------------------------------





// -----------------------------------------------------------------------------------------
// TODO [구현부 소스 코드 작성]
int main(void)
{

    /**
     * ------------------------------------
     * [요약 설명]
     * ------------------------------------
     * 1. try catch : 예외 처리 구문을 수행합니다
     * ------------------------------------
     * 2. 로직 : 0 나누기 수행 후 에러가 발생하는 경우 에러 메시지 출력
     * ------------------------------------
     * */


    // [변수 선언 실시]
    int one = 5;
    int two = 0;
    int result = 0;


    // [try catch 구문 처리]
    try {
        if (two != 0){

            // [나누기 수행]
            result = one / two;

            __android_log_print(ANDROID_LOG_WARN, "[C++] [LOG]", "%s", "=====================================================");
            __android_log_print(ANDROID_LOG_INFO, "[C++] [LOG]", "[CATCH] :: %d", result);
            __android_log_print(ANDROID_LOG_WARN, "[C++] [LOG]", "%s", "=====================================================");
        }
        else {

            // [예외 발생 수행 : catch 절]
            throw string("EXCEPTION : 0 나누기를 수행 할 수 없습니다.");
        }
    }
    catch (string error){
        __android_log_print(ANDROID_LOG_WARN, "[C++] [LOG]", "%s", "=====================================================");
        __android_log_print(ANDROID_LOG_INFO, "[C++] [LOG]", "[CATCH] :: %s", error.c_str());
        __android_log_print(ANDROID_LOG_WARN, "[C++] [LOG]", "%s", "=====================================================");
    }


    return 0;
}
// --------------------------------------------------------------------------------------
 

[결과 출력]

 

W/[C++] [LOG]: =====================================================
I/[C++] [LOG]: [CATCH] :: EXCEPTION : 0 나누기를 수행 할 수 없습니다.
W/[C++] [LOG]: =====================================================

 

반응형
Comments