【C++】例外処理を解説

例外処理画像 C++基礎

この記事では、C++の例外処理について学びます。例外処理はプログラムが予期しない状況に遭遇したときに、それを「捕捉」して適切に対応するための仕組みです。

以下の内容を解説します。

  • try, catch, throw を使ってエラー処理を制御します。
  • C++には標準でいくつかの例外クラスが用意されています。
  • 自分で例外クラスを作成することも可能です。

例外処理を学ぶことで、エラーによるプログラムのクラッシュを防ぎ、安全なコードを書くことができます。

プログラムを実行するための環境構築がまだの方は「C++を実行するための環境構築|初心者でも簡単!(Windows)」をご覧ください。

例外の基本(try, catch, throw)

例外処理の基本的な概念は try, catch, throw の3つです。これらを使って、エラーが発生したときの処理を制御します。

#include <iostream>

int main() {
    try {
        // ここでエラーが発生する可能性のあるコードを書く
        throw "エラーが発生しました!";  // エラーを投げる
    }
    catch (const char* e) {
        // エラーが捕捉されたときの処理を書く
        std::cout << e << "\n";
    }

    return 0;
}

実行結果:

エラーが発生しました!

このコードでは、try ブロック内でエラーが発生(throw)すると、そのエラーは catch ブロックで捕捉され、エラーメッセージが出力されます。

try ブロックはエラーが発生する可能性のあるコードを囲むために使用します。catch ブロックはそのエラーを捕捉して適切に処理するために使用します。

標準例外クラス

C++には、標準でいくつかの例外クラスが用意されています。これらは <stdexcept> ヘッダファイルに定義されています。

#include <iostream>
#include <stdexcept>

int main() {
    try {
        throw std::runtime_error("ランタイムエラーが発生しました!");
    }
    catch (std::runtime_error& e) {
        std::cout << e.what() << "\n";
    }

    return 0;
}

実行結果:

ランタイムエラーが発生しました!

このコードでは、std::runtime_error クラスの例外を投げています。この例外は catch ブロックで捕捉され、エラーメッセージが出力されます。

標準例外クラスを使用すると、より具体的なエラー情報を提供できます。

カスタム例外の作成

自分で例外クラスを作成することも可能です。これにより、プログラムの特定の部分で特定のエラーを投げることができます。

#include <iostream>
#include <exception>

// カスタム例外クラスの作成
class MyException : public std::exception {
public:
    const char* what() const noexcept override {
        return "MyExceptionが発生しました!";
    }
};

int main() {
    try {
        throw MyException();
    }
    catch (MyException& e) {
        std::cout << e.what() << "\n";
    }

    return 0;
}

実行結果:

MyExceptionが発生しました!

このコードでは、MyException というカスタム例外クラスを作成し、その例外を投げています。この例外は catch ブロックで捕捉され、エラーメッセージが出力されます。

まとめ

  • 例外処理は、エラーが発生したときにそれを「捕捉」して適切に対応するための仕組みです。
  • try, catch, throw を使ってエラー処理を制御します。
  • C++には標準でいくつかの例外クラスが用意されています。
  • 自分で例外クラスを作成することも可能です。

例外処理をマスターすることで、より堅牢なプログラムを作成することができます。

例外処理は、プログラムが予期しない状況に遭遇したときに、それを「捕捉」して適切に対応するための重要な技術です。この記事では、その基本的な概念と、標準例外クラスの使用方法、そしてカスタム例外クラスの作成方法について学びました。これらの知識を活用することで、エラーによるプログラムのクラッシュを防ぎ、安全なコードを書くことができます。例外処理をマスターすることで、より堅牢なプログラムを作成することができます。これからも、より良いコードを書くための学習を続けていきましょう。

次のページ >> 【C++】モダンC++の機能を解説

【C++】をより詳しく学びたい方はこちら >>【C++】入門書おすすめ3選!超初心者~中級者まで網羅!

プログラムを実行するための環境構築がまだの方は「C++を実行するための環境構築|初心者でも簡単!(Windows)」をご覧ください。

コメント

タイトルとURLをコピーしました