[c++] 구조체와 클래스의 예외 처리
C++에서 구조체와 클래스는 예외 처리를 위한 기능을 제공합니다. 이 기능을 사용하여 코드 실행 중에 예외 상황을 처리하고 적절한 조치를 취할 수 있습니다. 이 글에서는 C++에서 구조체와 클래스에서 예외 처리를 어떻게 사용하는지 알아보겠습니다.
구조체와 클래스의 예외 처리 구문
C++에서 구조체와 클래스에서 예외 처리를 위한 try
, catch
, throw
키워드를 사용합니다.
try {
// 예외가 발생할 수 있는 코드
}
catch (ExceptionType e) {
// 예외를 처리하는 코드
}
예외 발생과 처리 예제
다음은 구조체와 클래스에서의 예외 발생과 처리 예제입니다.
#include <iostream>
struct MyStruct {
void doSomething() {
throw "Something went wrong!";
}
};
int main() {
MyStruct s;
try {
s.doSomething();
}
catch (const char* e) {
std::cout << "Caught exception: " << e << std::endl;
}
return 0;
}
구조체와 클래스에서의 정교한 예외 처리
구조체와 클래스에서 예외 처리를 보다 정교하게 다루기 위해 사용자 정의 예외 클래스를 만들어 사용할 수 있습니다. 이를 통해 예외를 더욱 명확하게 구분하고 처리할 수 있습니다.
#include <iostream>
#include <exception>
class MyException : public std::exception {
public:
const char* what() const throw() {
return "My custom exception";
}
};
struct MyClass {
void doSomething() {
throw MyException();
}
};
int main() {
MyClass c;
try {
c.doSomething();
}
catch (const std::exception& e) {
std::cout << "Caught exception: " << e.what() << std::endl;
}
return 0;
}
결론
C++에서 구조체와 클래스에서 예외 처리를 적절히 활용하여 코드의 안정성을 높일 수 있습니다. 예외 처리는 코드의 예외 상황을 처리하는 데 유용한 도구이며, 구조체와 클래스에서도 이를 적절히 활용할 수 있습니다.
참고문헌:
- https://www.learncpp.com/cpp-tutorial/15-3-exception-handling/
- https://en.cppreference.com/w/cpp/language/try_catch