この記事では、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)」をご覧ください。
コメント