Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++11 在Boost属性树库中,如何以自定义方式(C+;+;)处理文件未找到错误 我想用升压库从C++文件中读取JSON数据。使用属性树。我是新的编程,非常新的C++,这是我第一次使用Boost库。很多年前我在C有一些历史。在C++中使用SFML库有一周的经验。_C++11_Boost_File Not Found_Boost Propertytree_Custom Error Handling - Fatal编程技术网

C++11 在Boost属性树库中,如何以自定义方式(C+;+;)处理文件未找到错误 我想用升压库从C++文件中读取JSON数据。使用属性树。我是新的编程,非常新的C++,这是我第一次使用Boost库。很多年前我在C有一些历史。在C++中使用SFML库有一周的经验。

C++11 在Boost属性树库中,如何以自定义方式(C+;+;)处理文件未找到错误 我想用升压库从C++文件中读取JSON数据。使用属性树。我是新的编程,非常新的C++,这是我第一次使用Boost库。很多年前我在C有一些历史。在C++中使用SFML库有一周的经验。,c++11,boost,file-not-found,boost-propertytree,custom-error-handling,C++11,Boost,File Not Found,Boost Propertytree,Custom Error Handling,下面是我的模板代码加载一个文件,读取数据,如果失败,给出一个错误。我想改变一下我的错误处理方式。 1.如果我不能打开提到的文件,因为它不存在,我想创建一个空白文件命名相应。2.但是,如果发生其他错误,但该文件存在,我不希望意外删除该文件并创建新文件(擦除数据) 我想大概是这样 catch (const std::exception& e) { if (e.type == std::exception::filenotfound()) //whatever function i need

下面是我的模板代码加载一个文件,读取数据,如果失败,给出一个错误。我想改变一下我的错误处理方式。 1.如果我不能打开提到的文件,因为它不存在,我想创建一个空白文件命名相应。2.但是,如果发生其他错误,但该文件存在,我不希望意外删除该文件并创建新文件(擦除数据)

我想大概是这样

catch (const std::exception& e)
{
 if (e.type == std::exception::filenotfound()) //whatever function i need
   {
    boost::property_tree::write_json("./data.json", pt);
   }
 else
   {
    std::cout << e.what() << std::endl;
   }
}
catch(const std::exception&e)
{
if(e.type==std::exception::filenotfound())//我需要的任何函数
{
boost::property_tree::write_json(“./data.json”,pt);
}
其他的
{
std::cout回答了我的问题。下面是确切的编码:

try
{
     // Trying to load the file
}
catch (const boost::property_tree::json_parser_error& e1)
{
    //Here what i do if i cant find the file
}

如果文件不存在,则会执行某些操作。但是如果文件存在,但其格式错误或没有适当的数据,则不会执行任何操作。

您似乎正在寻找。如果您这样做,您应该能够很快找到它。谢谢。但由于某些原因,我无法实现它。尝试以以下方式对其进行测试:
试试{boost::property_tree::read_json(“./data.json”,pt);}catch(const boost::property_tree::ptree_bad_path&e1){std::cout和什么是“原始错误”?“/data.json无法打开文件”是最初的错误。我正在尝试首先测试我的实现,让它编写一些与此不同的内容,这样我就知道我重写了它。这样,错误消息会被打印出来?是由Boost还是由您打印的?是否引发了异常?另外,我似乎对异常有错误,它是针对实际属性树的错误路径引发的,对此表示抱歉。
try
{
     // Trying to load the file
}
catch (const boost::property_tree::json_parser_error& e1)
{
    //Here what i do if i cant find the file
}