[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
블록을 사용하여 예외를 처리하거나, 오류 코드를 활용하여 함수의 실행 결과를 검사할 수 있습니다. 적절한 상황에서 이러한 메커니즘을 사용하여 프로그램을 안정적으로 유지할 수 있습니다.