我正在寻找关于使用std::logic_error
而不是使用复杂的嵌套 if/elseif 返回 true/false 列表的意见。
我想从很多类似的功能中移出,如下所示
bool validate_data(){
std::vector<int> v;
//fill with data
if( v.find(10) == v.end() ){
return false;
}
// other checks that return false
}
到
bool validate_data(){
std::vector<int> v;
//fill with data
if( v.find(10) == v.end() ){
throw std::logic_error("error message");
}
// other checks that return false
}
并在一个try-catch
块中调用所有这些函数列表。
因为它是一个派生的,std::exception
我可能不知道这是否是一个好主意。
有人像下面的例子那样使用吗?
非常感谢
AFG