我刚刚注意到了一些东西,我觉得这很奇怪。这不是很重要,但它吸引了我的好奇心。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为快速回答。 –