我现在修改的就是不用构造函数打开,而是增加open打开判断;就是还是笨办法;有没有办法不改变源代码构造函数打开方式,怎么判断打开失败异常处理呢?!
std::string path = "data/data.txt";
//DictParser dp("data/data.txt"); //DictParser is used to parse a file 之前构造函数打开方式
baidu::DictParser dp; //DictParser is used to parse a file
try {
dp._fs.open(path);
if(dp._fs.is_open()){
std::cout << "load file success!" << std::endl;
}else {
throw "open file error!";
}
} catch (std::exception &e) {
std::cout << "load error : " << e.what() << std::endl;
}
【 在 ziqin 的大作中提到: 】
: 小概率(5%),throw,大于5%可能性,要改变设计模式,如果是运行时会出现的,不在构造函数内打开,并将加bool open() 函数,不会在运行时出问题的(纯粹应该由使用者检查的),用assert
--
FROM 111.206.214.*