例外処理の throw ステートメントは例外をスローするために使用され、rethrow ステートメントはキャプチャされた例外で同じ例外を再度スローするために使用されます。 throw ステートメントの構文は次のとおりです: throwException_object; rethrow ステートメントの構文は次のとおりです: rethrow; throw ステートメントと rethrow ステートメントは、エラーを呼び出し元に報告する必要があり、例外情報が明確で有用である必要がある場合にのみ使用されます。
C 関数の例外処理における throw および rethrow ステートメント
例外とは、実行時に発生するエラーまたは異常な状況です。 use throw ステートメントはスローします。 rethrow ステートメントは、キャッチされた例外内で同じ例外を再度スローするために使用されます。
throw ステートメント
throw ステートメントは、例外オブジェクトをスローするために使用されます。構文は次のとおりです。
throw exception_object;
ここで、 Exception_object
は例外オブジェクトであり、標準例外クラスまたはユーザー定義例外クラスのインスタンスにすることができます。
実際的なケース
2 つの数値の商を計算する関数 divide()
を考えてみましょう。分母がゼロの場合、例外がスローされます。
void divide(int a, int b) { if (b == 0) { throw runtime_error("除数不能为零"); } cout << "商为 " << a / b << endl; }
rethrow ステートメント
rethrow ステートメントは、キャッチされた例外で同じ例外を再度スローするために使用されます。構文は次のとおりです。
rethrow;
実用的なケース
divide()
関数を拡張して、runtime_error## をキャプチャしてみましょう。 # 例外を返し、再度スローするには rethrow を使用します。
void divide(int a, int b) { try { if (b == 0) { throw runtime_error("除数不能为零"); } cout << "商为 " << a / b << endl; } catch (runtime_error& e) { cerr << "错误: " << e.what() << endl; rethrow; // 重新抛出异常 } }
使用上のヒント
以上がC++ 関数の例外処理における throw ステートメントと rethrow ステートメントの役割は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。