ホームページ  >  記事  >  バックエンド開発  >  C++ 関数の例外処理で特定のタイプの例外をキャッチするにはどうすればよいですか?

C++ 関数の例外処理で特定のタイプの例外をキャッチするにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-04-15 22:09:02910ブラウズ

C で特定の種類の例外をキャッチするメソッド: try-catch ブロックを使用します。 catch 句でキャッチする例外の種類を指定します (catch (const std::runtime_error& e) など)。実際のケースでは、read_file() 関数は std::runtime_error をスローすることでファイルが存在しない場合を処理し、try-catch ブロックを使用してこの例外をキャッチし、エラー メッセージを出力します。

C++ 函数异常处理中如何捕获特定类型的异常?

C 関数例外処理で特定の種類の例外をキャッチする

C では、try-catchブロックが関数でスローされた例外を処理する場合、catch 句を使用して特定の種類の例外をキャッチできます。たとえば、std::runtime_error タイプの例外をキャッチするには、次の構文を使用できます。

try {
  // 函数代码
} catch (const std::runtime_error& e) {
  // 处理 std::runtime_error 异常
}

実際のケース:

あると仮定します。 read_file() 関数は、ファイルからデータを読み取る役割を果たします。ファイルが存在しない場合、関数は std::runtime_error 例外をスローします。 try-catch ブロックを使用して、この例外を処理できます:

#include <iostream>
#include <fstream>

void read_file(const std::string& filename) {
  std::ifstream file(filename);
  if (!file.is_open()) {
    throw std::runtime_error("File not found");
  }
  
  // 读取文件内容
}

int main() {
  try {
    read_file("myfile.txt");
  } catch (const std::runtime_error& e) {
    std::cerr << "Error: " << e.what() << std::endl;
  }
  return 0;
}

このプログラムを実行すると、ファイル "myfile.txt" が存在しない場合、次のエラー メッセージが出力されます。

rree

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。