[c++] 사용자 정의 예외 클래스 디자인
C++에서는 사용자 정의 예외 클래스를 디자인하여 특정 상황에서 예외를 던질 수 있습니다. 사용자 정의 예외 클래스를 디자인하고 활용하는 방법에 대해 알아봅시다.
1. 사용자 정의 예외 클래스 만들기
사용자 정의 예외를 만들기 위해서는 std::exception
클래스를 상속받는 새로운 클래스를 정의합니다. 예를 들어, 아래와 같이 CustomException
이라는 예외 클래스를 정의할 수 있습니다.
class CustomException : public std::exception {
public:
CustomException(const char* message) : m_message(message) {}
const char* what() const noexcept override {
return m_message;
}
private:
const char* m_message;
};
2. 사용자 정의 예외 클래스 활용하기
이제 CustomException
클래스를 사용하여 예외를 던지는 예제를 살펴봅시다.
void someFunction() {
// 예외 상황 발생 시
throw CustomException("Something went wrong!");
}
int main() {
try {
someFunction();
} catch (const CustomException& ex) {
std::cout << "Caught custom exception: " << ex.what() << std::endl;
}
return 0;
}
위 예제에서는 someFunction()
에서 CustomException
을 던지고, main()
함수에서 해당 예외를 잡아서 처리하는 방법을 보여줍니다.
3. 사용자 정의 예외 클래스에 추가 정보 포함하기
가끔은 예외 발생 시 추가 정보를 포함해야 하는 경우가 있습니다. 이를 위해 사용자 정의 예외 클래스에 멤버 변수를 추가하여 예외 정보를 저장할 수 있습니다.
예를 들어, 다음과 같이 사용자 정의 예외 클래스를 확장할 수 있습니다.
class CustomException : public std::exception {
public:
CustomException(const char* message, int errorCode) : m_message(message), m_errorCode(errorCode) {}
const char* what() const noexcept override {
return m_message;
}
int getErrorCode() const {
return m_errorCode;
}
private:
const char* m_message;
int m_errorCode;
};
결론
C++에서는 사용자 정의 예외 클래스를 만들어 특정 상황에서 예외를 던질 수 있습니다. 이를 통해 보다 구체적인 예외 정보를 제공하고, 예외를 적절하게 처리할 수 있습니다.
더 많은 정보를 원하시면 C++ 공식 문서를 참고하세요.
관련 참고 자료: