예외 처리?? __ try catch

😎·2023년 1월 12일
0

CPP

목록 보기
30/46

예외 처리

C 에서는 예외처리를 오직 if/else 를 사용하여 처리했다. 프로그램의 규모가 커지면서 if/else 는 분기를 나누는데 적절한 구문이 되었고, 코드 가독성 등 효율을 위해 예외처리를 위한 구문이 필요해졌다. 그래서 생긴 것이 try catch 구문이다.
C++ 에는 C 와 다르게 예외 처리를 담당하는 객체가 있다. 바로 try, catch 구문이다.


#include <stdexcept>

void    test(void)
{
    try
    {
    	// 진행할 코드 부분, 예외상황에서 error를 throw 함.
        test1();
    }
    catch (const std::exception& e) // throw 를 받음.
    {
        //handle error
    }
}

try, throw, catch

위 코드의 try { test1(); } 부분 이다. 해당 부분에서는 원하는 실행부를 넣는다. test1(); 이라는 함수를 넣었다.

test1(); 은 다음과 같은 함수다. if/else 로 문제가 있을 경우 에러를 throw 한다.

void    test1(void)
{
    if (/* there's an error */)
    {
        throw std::exception();
    }
    else
    {
        //Do some more stuff
    }
}

throw 를 하면 위에서 봤던 catch 의 매개 변수로 예외를 받고, catch 구역에 있는 코드를 실행한다.

catch (const std::exception& e) // throw 를 받음.
{
    //handle error
}
profile
jaekim

0개의 댓글