私は何かに気づきました、そして、それはかなり変だと思います。それはあまり重要ではありませんが、私の好奇心を引き出します。C++:異常な動作を例外に投げる?
あなたがクラスを宣言想像:
class myException : public std::exception
{
/*do stuff*/
} myExep;
私はちょうどあなたがその例外をスローするたびに、あなたはあなたがmyException
やmyExep
を使用するかどうかに応じて異なり、それを行う必要があることに気づい:
try
{
if (/*whatever*/)
throw myException();
}
か:
try
{
if (/*whatever*/)
throw myExep;
}
なぜわかりません1つのケースでは()
が必要であり、もう1つではありません。 コンパイラとしてclang ++を使っていますが、何か関係がある場合はdunnoです。 私は-Wall -Werror -Wextra
フラグを使用します。
本当に大したことではありません。実際に何が起こっているのか理解したいだけです。 myException
がタイプ中で、あなたの例では
struct {
int x, y;
} p;
// p is an object with p.x and p.y fields
:
myExceptionは型ですが、myExceptはオブジェクトです。 – Mat
私はそんなに馬鹿?あなたがクラスでそれを行うとき、それはtypedefのようなものだと本当に思っていました。 オブジェクトをそうすることができますか?速い答えのためのThx。 –