【发布时间】:2016-12-15 10:05:27
【问题描述】:
我是 C++ 新手,很抱歉提出非常愚蠢的问题,但我对 C++ 异常处理机制中的 throw 语句感到困惑。
- 在下面的代码中,为什么我们调用名称匹配的函数 类名?
- 是构造函数吗?
- 是否创建了
class Except的实例?
我不明白那里的语法。
class A
{
public:
class Except{};
void foo() { throw Except(); }
};
int main()
{
A a;
try
{
a.foo();
}
catch(Except E)//exception handler
{
cout << "Catched exception" << endl;
}
}
【问题讨论】:
-
是的,它正在使用默认构造函数创建
Except的实例,该构造函数不接受任何参数。 -
随着你的学习;通过 const 引用捕获异常,例如
catch(const Except & E)
标签: c++ exception syntax exception-handling throw