ホームページ > バックエンド開発 > C++ > C++ で関数例外を処理するにはどうすればよいですか?

C++ で関数例外を処理するにはどうすればよいですか?

WBOY
リリース: 2024-04-12 21:06:02
オリジナル
762 人が閲覧しました

例外処理は、実行時エラーを処理するための C のメカニズムです。 throw と catch で例外をスローし、try、catch、finally ブロックで処理します。具体的な構文は次のとおりです。 try { // 例外を引き起こす可能性のあるコード}catch (const std::Exception& e) { // 例外をキャッチして処理します}catch(...) { // すべての例外をキャッチします}

C++ 中如何处理函数异常?

C で関数例外を処理する方法

例外処理は、実行時エラーを処理するための C のメカニズムです。例外をスローするには throw キーワードを使用し、例外をキャッチして処理するには try、catch、およびオプションでfinally ブロックを使用します。

構文:

try {
  // 可能引发异常的代码
} catch (const std::exception& e) {
  // 捕获并处理异常
} catch(...) {
  // 捕获所有异常
}
ログイン後にコピー

実際の例:

文字列を整数に変換する次の関数について考えてみましょう。 ##

int string_to_int(std::string str) {
  try {
    int num = std::stoi(str);
    return num;
  } catch (const std::invalid_argument& e) {
    std::cout << "无法将字符串转换为整数" << std::endl;
    return -1;
  } catch (const std::out_of_range& e) {
    std::cout << "整数超出范围" << std::endl;
    return -1;
  }
}
ログイン後にコピー

この関数を main 関数で使用します:

int main() {
  std::string input = "123";
  int num;

  try {
    num = string_to_int(input);
    std::cout << num << std::endl;
  } catch (const std::exception& e) {
    std::cout << "出现异常: " << e.what() << std::endl;
  }

  return 0;
}
ログイン後にコピー

利点:

    プログラムの堅牢性の向上
  • ハンドル固有の許可特定の場所での例外
  • エラー情報とカスタム エラー処理の提供
  • プログラムの予期せぬ終了の防止

以上がC++ で関数例外を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート