给定下面的伪代码,我想捕获 B 类中的子对象 a 抛出的异常,并在 B 中维护该对象私有。如下所述的 catch 子句不起作用,因为对象 a 在 B 中是私有的。我怎样才能捕捉到这个异常?
编辑 我已将伪代码更改为将 A 类嵌入到 B 类中。
class B
{
class A
{
public:
class Exception{};
A() throw(Exception) { ... } // A ctor throws an Exception class object
} a;
public:
B() { ... } // B ctor
};
int main()
{
try
{
B b;
}
catch( B::A::Exception& )
{
...
}
}