-
例外のスロー: C++で例外をスローするには、
throw
キーワードを使用します。例外をスローすると、プログラムの実行は現在の関数から抜け出し、例外をキャッチするまでのスタックフレームが解除されます。void divide(int a, int b) { if (b == 0) { throw "Divide by zero exception"; } int result = a / b; // 他の処理 } int main() { try { divide(10, 0); } catch (const char* msg) { std::cout << "例外がスローされました: " << msg << std::endl; } return 0; }
上記の例では、
divide
関数内でゼロでの除算が発生した場合に例外がスローされます。main
関数では、try
ブロック内でdivide
関数を呼び出し、catch
ブロックで例外をキャッチしてメッセージを表示しています。 -
例外クラスの使用: C++では、例外を表すためにカスタムの例外クラスを定義することもできます。これにより、より詳細な情報やカスタムのエラーメッセージを例外に含めることができます。
class MyException : public std::exception { public: const char* what() const noexcept { return "My custom exception"; } }; void doSomething() { throw MyException(); } int main() { try { doSomething(); } catch (const std::exception& e) { std::cout << "例外がスローされました: " << e.what() << std::endl; } return 0; }
上記の例では、
MyException
というカスタムの例外クラスを定義し、doSomething
関数内で例外をスローしています。main
関数では、std::exception
クラスをキャッチして例外の詳細な情報を表示しています。
例外処理に関する詳細な情報や他の例もありますが、上記の例は基本的な例外のスローとキャッチの方法を示しています。プログラムの特定の状況に応じて、適切な例外処理戦略を選択してください。