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 中国語 Web サイトの他の関連記事を参照してください。