例外処理は、エラーを適切に処理する C の機能です。これには、例外のスローとキャッチが含まれます。 例外のスロー: throw キーワードを使用して、例外を明示的にスローするか、コンパイラーに自動的に例外をスローさせます。例外のキャッチ: try-catch ブロックを使用して例外をキャッチし、例外処理操作を実行します。実践的な戦闘:除算関数で、除数がゼロの場合を処理するために std::invalid_argument 例外をスローします。ヒント: 例外仕様を使用し、必要な例外のみをキャッチし、例外をログに記録し、必要に応じて再スローを使用します。
#C 関数で例外を効果的に処理するにはどうすればよいでしょうか?
例外処理は、エラーや予期しないイベントが発生したときにプログラムを正常に回復または終了できるようにする C の重要な機能です。例外を適切に処理することは、プログラムのクラッシュを防ぎ、堅牢性を維持するために非常に重要です。
例外処理メカニズム
C では、例外は本質的に std::Exception
クラスから派生したクラスです。関数が例外をスローすると、そのクラスまたはそのサブクラスのオブジェクトがスローされます。 throw
キーワードを使用して明示的に例外をスローすることも、特定のエラーが発生したときに C コンパイラに自動的に例外をスローさせることもできます。
例外のキャッチ
try-catch
ブロックを使用して例外をキャッチできます。 try
ブロックには例外をスローする可能性のあるコードが含まれていますが、catch
ブロック (try
ブロックの後に存在します) は、スローされた例外をキャッチして取得するために使用されます。適切な行動 。
try { // 可能引发异常的代码 } catch (std::exception& e) { // 捕获异常并采取操作 }
実際的なケース
2 つの数値を除算して結果を返す関数 divide
を考えてみましょう。ゼロで除算しようとすると、この関数は例外をスローする可能性があります。
int divide(int a, int b) { if (b == 0) { throw std::invalid_argument("除数不能为零"); } return a / b; }
divide
関数を呼び出すときは、try-catch
ブロックを使用して潜在的な例外を処理できます。
int main() { try { int dividend = 10; int divisor = 5; int result = divide(dividend, divisor); std::cout << "结果:" << result << std::endl; } catch (std::invalid_argument& e) { std::cout << "错误:" << e.what() << std::endl; } return 0; }
ヒントと提案
catch (std::Exception&)
) はすべての例外をキャッチするため、使用しないでください。重要なエラーがマスクされる可能性があります。 以上がC++ 関数で例外を効果的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。