私たちの教授は、プログラムを作成するためのシェルをくれました。その中に「Maker」と呼ばれるクラスがあり、例外をスローすることができます。彼が提供したコンストラクターの形式を考えると、エラーをスローしてキャッチする方法について混乱しています。
彼は、CycleFoundException.h という独自の特別な例外ヘッダー ファイルを提供してくれました。これは次のようになります。
#include <iostream>
#include <exception>
using namespace std;
class CycleFoundException: public exception {
// Don't add code
};
Maker.h ヘッダー ファイルは次のとおりです。
#include "CycleFoundException.h"
class Maker
{
private:
// insert instance variables
public:
Maker(int x) throw (CycleFoundException);
};
最後に、cpp シェル Maker.cpp:
#include Maker.h
Maker::Maker(int x) throw (CycleFoundException){
//add code here
}
int main()
{
return 0;
}
このようなコンストラクター宣言は見たことがありません。「throw (CycleFoundException)」がコンストラクターの宣言にタグ付けされるのはなぜですか? それは必要ですか?
そして、この形式で例外をスローするにはどうすればよいでしょうか? それ以外の場合と同じように、つまり、特定の条件が満たされない場合は、(コンストラクターの本体内から) 例外をスローしますか? ありがとう。