[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++에서 구조체와 클래스에서 예외 처리를 적절히 활용하여 코드의 안정성을 높일 수 있습니다. 예외 처리는 코드의 예외 상황을 처리하는 데 유용한 도구이며, 구조체와 클래스에서도 이를 적절히 활용할 수 있습니다.

참고문헌: