我曾经initialization list
通过 Constructor 使用,一切都很顺利。但现在我需要一些exception handling
在我的班。
所以这里有一些示例代码:
1-没有异常处理
class CVector{
public:
CVector(const int);
protected:
int* pInt;
int size;
};
CVector::CVector(const int sz) :
pInt{ new int[sz]}, size{ sz}{
}
上面的构造函数不检查是否传递了无效的大小,还是new
失败了......
现在我编辑了构造函数来处理异常:
2- 异常处理:
CVector::CVector(const int sz){
size = sz;
if(size <=0 )
throw; // some exception object
pInt = new int[sz];
if(nullptr == pInt)
throw; // some memory exception
}
- 现在的问题是:它们是排他性的吗?- 我的意思是如何通过构造函数将异常处理与初始化列表混合在一起?