Eri*_*ika 3 c++ initialization exception
以下定义是坏风格还是普通错误?也就是说,在初始化一个被认为不正确的值之后抛出是不对的?
myClass::myClass(int arg) : value(arg)
{
if (value < 0)
throw (myException("Negative value not allowed!"));
}
Run Code Online (Sandbox Code Playgroud)
似乎最好使用intializer-list而不是在正文中赋值,并且根据我的理解,如果我在分配了值之后或之前抛出它并不重要.
允许使用初始值设定项列表的替代方法,如果参数不在有效范围内,也可以在初始化值之前抛出:
inline int RequirePositive(int value)
{
if (value < 0) throw (myException("Negative value not allowed!"));
return value;
}
class myClass {
myClass(int arg) : value(RequirePositive(arg)) {}
};
Run Code Online (Sandbox Code Playgroud)