[c++] 예외 처리와 오류 코드

C++은 예외 처리를 통해 프로그램 실행 중 발생할 수 있는 오류를 다룹니다. 이를 통해 프로그램의 안정성을 높이고 예상치 못한 상황에 대비할 수 있습니다. 예외 처리를 사용하면 예외 상황을 감지하고 처리하는 데 필요한 메커니즘을 제공받을 수 있습니다.

예외 처리

C++에서는 try, catch, throw 키워드를 사용하여 예외를 처리합니다. try 블록에서는 예외가 발생할 수 있는 코드를 포함하고, 예외가 발생할 경우 이를 처리하기 위해 catch 블록이 사용됩니다.

try {
    // 예외가 발생할 수 있는 코드
    throw CustomException("Something went wrong");
}
catch(CustomException& e) {
    // 예외 처리
    std::cout << "Caught exception: " << e.what() << std::endl;
}

사용자 정의 예외 클래스

사용자는 자신만의 예외 클래스를 정의하여 예외를 생성하고 처리할 수 있습니다. 사용자 정의 예외 클래스는 std::exception 클래스를 상속받아 작성될 수 있습니다.

class CustomException : public std::exception {
public:
    CustomException(const char* message) : m_message(message) {}

    virtual const char* what() const noexcept override {
        return m_message.c_str();
    }

private:
    std::string m_message;
};

오류 코드

때로는 예외 처리 대신 오류 코드를 사용하는 것이 더 적합한 상황도 있습니다. 오류 코드를 사용하면 예외 처리를 피하고 함수가 실행 중에 발생한 오류를 보고할 수 있습니다. C++에서는 함수의 반환값으로 오류를 나타내는데, 일반적으로 0보다 작은 값은 오류를 나타내며 0 이상의 값은 성공을 의미합니다.

결론

C++에서는 예외 처리와 오류 코드를 사용하여 프로그램의 안정성을 높일 수 있습니다. try, catch 블록을 사용하여 예외를 처리하거나, 오류 코드를 활용하여 함수의 실행 결과를 검사할 수 있습니다. 적절한 상황에서 이러한 메커니즘을 사용하여 프로그램을 안정적으로 유지할 수 있습니다.

참고 자료