C++ で例外をスローする

Muhammad Adil 2023年12月11日
  1. C++ で例外をスローする
  2. C++ で例外を使用する目的
  3. C++ throw 例外を使用する
C++ で例外をスローする

C++ throw 例外は、エラーや予期しないイベントの処理に使用できる C++ の強力な機能です。 主に、プログラムの実行を終了したり、プログラムの別の部分に制御を移したりするために使用されます。

C++ で例外をスローする

C++ 例外は、無効な引数、ゼロ除算などの例外的な状況によって生成されます。コンパイラは、コンパイル時に検出したすべてのエラーに対して例外を作成できます。

ただし、プログラマーは、コード内でキーワード throw を使用して例外を作成することもできます。

throw とは別に、catchtry キーワードもあります。

  1. Catch - コードは、問題に対処する必要があるコード内のポイントで例外ハンドラーを使用して例外をキャッチします。 catch キーワードは、例外がキャッチされたことを示します。
  2. trytry ブロックは、特定の例外がトリガーされるコードのセクションを示します。 1つ以上の catch ブロックがその後に続きます。

メソッドは、ブロックが例外を発生させると想定して、try キーワードと catch キーワードを組み合わせることによって例外をキャプチャします。 try/catch ブロックは、エラーをスローする可能性のあるコードをカプセル化します。

C++ で例外を使用する目的

例外は、C++ でエラーを処理する方法です。 これらは、コードをより効率的で、保守しやすく、堅牢にするために使用されます。

例外を使用すると、プログラマは単にエラー コードやステータス コードを返すよりも体系的にエラーを処理できます。 例外メカニズムは柔軟に設計されており、プログラムの実行中に発生する可能性のあるエラーを処理するために使用できます。

例外の一般的な用途には次のようなものがあります。

  1. 無効な入力パラメーターの検出
  2. 無効なデータ構造の検出
  3. I/O エラーの処理
  4. メモリ割り当ての失敗などの処理

C++ throw 例外を使用する

このセクションでは、C++ throw 例外の使用に関するガイドを提供します。

  1. C++ throw 例外を使用するための最初のステップは、クラスを作成することです。
  2. 2 番目のステップは、クラスのコンストラクターを作成することです。 これは、クラス内の変数を初期化するために使用され、このクラスからオブジェクトを作成するときにも使用されます。
  3. コンストラクターを呼び出してからメソッドを呼び出して、このクラスのオブジェクトを作成します。 コードにエラーがある場合、このメソッドは例外をスローし、いくつかの情報を出力します。

上記の手順を使用して例を説明しましょう。

#include <iostream>
using namespace std;
double division(int a, int t) {
  if (t == 0) {
    throw "You are dividing with number 0 that makes impoosible to execute the operation ";
  }
  return (a / t);
}
int main() {
  int x = 4;
  int y = 0;
  double z = 4;
  try {
    z = division(x, y);
    cout << z << endl;
  } catch (const char* msg) {
    cerr << msg << endl;
  }
  return 0;
}

ここをクリック 上記のコードの動作を確認します。

著者: Muhammad Adil
Muhammad Adil avatar Muhammad Adil avatar

Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.

Facebook

関連記事 - C++ Exception