C++ でのエラー処理

Naila Saad Siddiqui 2024年2月15日
  1. C++ でのエラー処理
  2. C++ での例外処理
C++ でのエラー処理

この簡単なガイドでは、C++ でのエラーと例外の処理について説明します。

C++ でのエラー処理

C++ のプログラムには、複数の種類のエラーが存在する可能性があります。 一部のエラーでは、ユーザーへの通知が必要です。

ユーザーに適切なエラー メッセージを表示し、プログラムを終了する必要があります。

エラーの処理には、いくつかの異なる方法を採用できます。 これらのいくつかは次のとおりです。

  1. ハードコーディングされたエラー メッセージをユーザーに表示します。
  2. 予想されるエラー メッセージをいくつかの変数に保存し、それらの変数を表示します。
  3. 例外処理を行う。

ハードコーディングされたエラー メッセージを表示する最初の方法は、非常に簡単です。 コードにエラーが発生する可能性がある場合は、エラー メッセージを表示してコードを終了します。

たとえば、無効なログインまたはパスワード入力の場合、次のようなメッセージを表示できます。

cout << "You have entered an incorrect username or password" << endl;
cout << "Try again!" << endl;

2 番目の方法は、考えられるエラー メッセージの文字列をいくつか作成し、それらの変数を必要な場所に表示することです。

const string INVALID_LOGIN_ERROR_MESSAGE = "Invalid Username or Password";
// later in the code
cout << INVALID_LOGIN_ERROR_MESSAGE << endl;

このようなタイプの文字列は、ErrorMessages.h のような別のヘッダー ファイルで宣言し、そのヘッダー ファイルをメイン ファイルに含めることができます。 このような文字列リテラルの利点は、コードの重複を防ぐことです。

エラーメッセージを変更したいときはいつでも、1つの場所 (つまり、宣言部分) を変更する必要があります。

C++ での例外処理

熟練したプログラミング スキルを持っていても、一部の実行時エラーは防止できません。 これらは例外であり、そのような種類のエラーに対して例外処理を行います。

たとえば、使用できないマシンから一部のメモリにアクセスしようとしたり、API ユーザーが関数に不正な引数を渡したりすることがあります。 このようなタイプのエラーは、例外処理を使用して処理されます。

プログラムで例外処理を使用するには、何らかのエラーが予想されるコード ブロックを try ブロックで囲みます。 したがって、例外が発生するたびに、関連する catch ブロックに制御が自動的に移され、プログラムを終了する前に意味のあるエラー メッセージが表示されます。

以下の例を考えてみましょう。

#include <iostream>
using namespace std;

int main() {
  int n1 = 2, n2 = 0;
  try {
    if (n2 != 0)
      cout << "Division: " << n1 / n2 << endl;
    else
      throw 0;
  } catch (int e) {
    cout << "Divide by zero exception " << endl;
  }
  return 0;
}

上記のコードの出力は次のようになります。

C++ での例外処理

関連記事 - C++ Error