p203.cpp
来自「《C++编程指南(续编)》的一些程序源代码」· C++ 代码 · 共 72 行
CPP
72 行
#include <string.h>
class XError
{
public:
XError(const char * pLocation,const char * pReason):
sReason(pReason),sLocation(pLocation)
{
}
void display(ostream& out)const;
protected:
const string sReason;
const string sLocation;
};
class XFileError:public XError
{
public:
XFileError(const char * pszFileName,
const char * pszReason):
XError("XFileError",pszReason),
sFileName(pszFileName)
{
}
virtual void display()const;
protected:
string sFileName;
};
class XFileNotPresent:public XFileError
{
public:
XFileNotPresent(const char * pszFileName):
XFileError(pszFileName,"File not present");
{
}
};
void processFile(const * pszFileName)
{
ifstream in(pszFileName);
if(in.fail())
{
throw XFileNotPresent(pszFileName);
}
while(!in.eof())
{
Object obj;
in>>obj;
if(in.fail())
{
throw XFileError(pszFileName,"read failure");
}
//addToDatabase(obj);
}
int main(int,char **)
{
try
{
char * pszFileName=getFileName();
processFile(pszFileName);
}
catch (XFileNotPresent& xfnp)
{
}
catch(XError& xerror)
{
cout<<"Fatal error: "<<endl;
xerror.display(cout);
}
return 0;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?