我剛剛注意到了一些東西,我覺得這很奇怪。這不是很重要,但它吸引了我的好奇心。C++:拋出異常奇怪的行爲?
試想一下,你聲明一個類:
class myException : public std::exception
{
/*do stuff*/
} myExep;
我剛纔注意到,每當你拋出異常,你需要做的不同,這取決於您是否使用myException
或myExep
:
try
{
if (/*whatever*/)
throw myException();
}
或:
try
{
if (/*whatever*/)
throw myExep;
}
我不明白爲什麼在一種情況下您需要()
,而不是其他情況。 我使用clang ++作爲編譯器,不知道它是否與它有關。 我使用-Wall -Werror -Wextra
標誌。
這不是什麼大不了的事情,我只是想了解真正發生了什麼。
myException是一個類型,myExcept是一個對象。 – Mat
嗯,我那愚蠢?當你在課堂上做這些事時,我真的認爲它就像是一個typedef。 那麼你可以用這種方式來表達一個對象嗎? Thx爲快速回答。 –