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 + -
显示快捷键?