gpt4 book ai didi

c++ - 初始化不正确的值后会抛出异常吗?

转载 作者:太空狗 更新时间:2023-10-29 19:49:07 25 4
gpt4 key购买 nike

以下定义是糟糕的风格还是完全错误的?也就是说,初始化一个被认为不正确的值后抛出错误吗?

myClass::myClass(int arg) : value(arg)
{
if (value < 0)
throw (myException("Negative value not allowed!"));
}

使用初始化器列表似乎比在正文中分配值更可取,据我所知,在分配值之后还是在之前抛出并不重要.

最佳答案

另一种方法允许使用初始化列表,并且如果参数不在有效范围内则在初始化值之前抛出异常:

inline int RequirePositive(int value)
{
if (value < 0) throw (myException("Negative value not allowed!"));
return value;
}

class myClass {
myClass(int arg) : value(RequirePositive(arg)) {}
};

关于c++ - 初始化不正确的值后会抛出异常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13352452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com