C++의 일반적인 예외 처리 문제를 해결하려면 특정 코드 예제가 필요합니다.
소개:
C++ 프로그램을 작성할 때 프로그램에서 0으로 제수, 범위를 벗어난 배열, null 포인터 액세스 등과 같은 예외가 자주 발생합니다. . 이러한 예외로 인해 프로그램이 충돌하거나 예측할 수 없는 결과가 발생할 수 있습니다. 프로그램의 안정성과 신뢰성을 향상하려면 예외 처리 메커니즘을 사용하여 이러한 예외를 캡처하고 처리해야 합니다. 이 기사에서는 C++의 일반적인 예외 처리 문제를 소개하고 해당 솔루션과 특정 코드 예제를 제공합니다.
다음은 간단한 예입니다.
try { // 可能发生异常的代码 throw 1; // 抛出一个整型异常 } catch (int e) { // 处理整型异常 cout << "捕获到异常:" << e << endl; }
다음은 몇 가지 일반적인 표준 예외 클래스와 해당 예외 조건입니다.
다음은 std::out_of_range 예외 클래스 사용의 예입니다.
try { int arr[5] = {1, 2, 3, 4, 5}; cout << arr[10] << endl; // 数组访问越界 } catch (std::out_of_range& e) { // 处理数组越界异常 cout << "捕获到数组越界异常:" << e.what() << endl; }
다음은 사용자 정의 예외 클래스의 예입니다.
class MyException : public std::exception { public: MyException(const std::string& message) : m_message(message) {} const char* what() const noexcept { return m_message.c_str(); } private: std::string m_message; }; try { throw MyException("这是一个自定义异常"); // 抛出自定义异常 } catch (MyException& e) { // 处理自定义异常 cout << "捕获到自定义异常:" << e.what() << endl; }
다음은 예외 전달의 예입니다.
void doSomething() { try { // 可能发生异常的代码 throw std::runtime_error("发生了一个错误"); } catch (std::exception& e) { // 处理异常,并传递给上一级调用者 cout << "捕获到异常:" << e.what() << endl; throw; } } try { doSomething(); } catch (std::exception& e) { // 处理传递过来的异常 cout << "捕获到传递过来的异常:" << e.what() << endl; }
결론:
예외 처리는 C++ 프로그램의 안정성과 신뢰성을 보장하는 중요한 부분입니다. 이 문서에서는 C++의 일반적인 예외 처리 문제를 소개하고 해당 솔루션과 특정 코드 예제를 제공합니다. 예외 처리 메커니즘을 적절하게 사용하면 프로그램에서 발생하는 비정상적인 상황에 더 효과적으로 대응하고 프로그램의 견고성을 높일 수 있습니다.
위 내용은 C++의 일반적인 예외 처리 문제에 대한 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!