例外処理は、throw ステートメントと catch ステートメントを通じて関数内のエラーを管理します。 throw ステートメントは例外をトリガーし、catch ステートメントは例外の種類に基づいて例外をキャッチします。関数の早い段階で例外をキャッチし、明確なエラー メッセージを提供することが重要です。適切な例外タイプを選択し、汎用の catch ブロックを慎重に使用し、未知の例外を汎用の catch ブロックで適切に処理します。
C 関数例外のトラブルシューティング: エラー処理の本質を理解する
例外処理は、関数内のエラーと例外を処理するために重要です。 C の例外は、throw
および catch
ステートメントによって実装されます。
throw
ステートメント
throw
ステートメントは、例外をトリガーするために使用されます。スロー可能なオブジェクトをパラメータとして受け取ります。これは、標準例外タイプ (std::runtime_error
など) またはカスタム例外タイプにすることができます。
catch
ステートメント
catch
ステートメントは、例外をキャッチするために使用されます。例外タイプまたは汎用例外タイプ (std::Exception
) をパラメータとして受け入れます。スローされた例外の型が catch ブロックの引数の型と一致する場合、catch ブロックが実行されます。
実際的なケース
2 つの数値の除算を計算する関数を考えてみましょう:
double divide(double num1, double num2) { if (num2 == 0) { throw std::runtime_error("除数不能为 0"); } return num1 / num2; }
次に、関数を呼び出して例外を処理する関数を考えてみましょう。メイン関数:
int main() { try { double result = divide(10, 2); std::cout << "结果:" << result << std::endl; } catch (std::runtime_error& e) { std::cout << "错误:" << e.what() << std::endl; } catch (...) { std::cout << "未知错误" << std::endl; } return 0; }
num2 が 0 の場合、divide
関数は std::runtime_error
例外をスローします。 main 関数の最初の catch
ブロックは例外をキャッチし、エラー メッセージを出力します。別のタイプの例外がスローされた場合は、2 番目の catch ブロックが実行され、「不明なエラー」が出力されます。
エラー処理の本質を理解する
catch (...)
) は、例外の種類が予測できない場合にのみ使用してください。 以上がC++ 関数例外のトラブルシューティング: エラー処理の本質を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。