私はまだ初心者ですが、プログラムの例外の目的を実際に把握していません。例外についてのご質問
例外をスローすると、基本的にプログラムの一部をスキップするので、私の質問の1つは次のようになります。例外がプログラムの最後につながる場合は?
また、Rectangleクラスがあるとします。
#include <iostream>
using namespace std;
class Rectangle {
public:
Rectangle(double length, double height)
{
if (length > 0 and heigth > 0) {
length_ = length;
height_ = height;
}
else {
// Throw an exception ? Use a convention ?
}
}
// other methods
private:
double length_;
double height_;
};
int main() {
// do stuff
return 0;
}
ただし、負の長さまたは高さを持つことはあまり意味がありません。 コンストラクタで例外をスローする必要がありますか?私は任意の規約を使用してその絶対値を取るべきですか? main()のユーザーが負の引数を渡さないようにする必要がありますか?
の両方を参照してください...オブジェクトに渡す前にデータを検証GUIを持つことには何も問題はありません。オブジェクトをコンストラクタ内で自己保護することも、正しい方法です。両方の理由は何ですか? GUIプログラマとオブジェクトがあなたのコントロールから外れていることがあります。場合によってはオブジェクトを記述することがあり、オブジェクトの使用方法についてはわかりません。コンストラクタで例外を渡すときは、オブジェクトを使用している人と契約しているからです。彼らが契約を破ると、例外が発生します。 –