[c++] 사용자 정의 예외 클래스
C++에서는 사용자가 정의한 예외 클래스를 만들어 예외 처리를 수행할 수 있습니다.
사용자 정의 예외 클래스 만들기
사용자 정의 예외 클래스를 만들 때에는 std::exception
클래스를 상속받아야 합니다. 그리고 예외 발생 시에 반환할 에러 메시지를 포함하는 what()
메서드를 오버라이딩해야 합니다.
아래는 간단한 사용자 정의 예외 클래스의 예시입니다.
#include <exception>
#include <string>
class MyException : public std::exception {
public:
MyException(const std::string& message) : m_message(message) {}
virtual const char* what() const throw() {
return m_message.c_str();
}
private:
std::string m_message;
};
위의 예시에서 MyException
클래스는 std::exception
클래스를 상속받고, what()
메서드를 오버라이딩하여 예외 발생 시에 반환할 메시지를 설정하고 있습니다.
사용자 정의 예외 처리하기
사용자 정의 예외를 발생시키고 처리하는 예시는 아래와 같습니다.
#include <iostream>
void someFunction() {
throw MyException("Something went wrong!");
}
int main() {
try {
someFunction();
} catch (const MyException& e) {
std::cout << "Caught MyException: " << e.what() << std::endl;
}
return 0;
}
위의 예시에서 someFunction()
에서 MyException
을 던지고, main()
함수에서 이를 잡아서 처리하고 있습니다.
사용자 정의 예외 클래스를 사용하면 특정한 예외 상황에 대해 자세한 정보를 담은 예외 객체를 만들어 예외 처리를 더욱 유연하게 할 수 있습니다.