我被要求使用boost :: exception創建「可定製的異常框架」。到目前爲止,我只使用由我定義的簡單例外。所以std :: exception,boost :: exception對我來說是新的。代碼如下。向我介紹boost :: exception
#include <iterator>
#include<string>
#include <algorithm>
#include<errno.h>
struct My_exception:public virtual boost::exception
{
};
int main()
{
std::string fileName="tmp.txt";
std::string mode="r";
try
{
if(fopen(fileName.c_str(),mode.c_str()))
std::cout << " file opened " << std::endl ;
else
{
My_exception e;
e << boost::errinfo_api_function("fopen") << boost::errinfo_file_name(fileName)
<< boost::errinfo_file_open_mode(mode) << boost::errinfo_errno(errno);
throw e;
}
}
catch(My_exception e)
{
// extract the details here //
}
return 1;
}
現在,我想知道如何從捕獲到的異常中提取數據。任何人都可以指導我在boost ::例外
@Nawaz,我無法理解它。你可以用代碼 – prabhakaran 2011-02-05 06:21:19