1. 程式人生 > >C++中讀寫檔案過程中異常處理機制

C++中讀寫檔案過程中異常處理機制

        在利用C++進行檔案讀取與寫入過程中,無論是針對二進位制檔案還是文字檔案均需要進行異常處理,在C++中我們可以利用CFile進行檔案的讀寫,而在MFC中還可以利用CStdioFile進行檔案的讀寫。

        利用CFile進行讀文字檔案過程中的異常處理可以通過如下程式碼實現

CString m_strFileName = "test.txt";
	CFile m_File;
	CFileException ex;
	if (!m_File.Open(m_strFileName,CFile::modeRead | CFile::shareDenyWrite, &ex))
	{
		TCHAR szError[1024];
		ex.GetErrorMessage(szError,1024);
		AfxMessageBox(szError);
		return;
	} 
	else
	{
	}

        這樣如果在檔案讀取過程中出現錯誤,程式就會彈出對話方塊提醒使用者,並中止程式執行。對於寫文字檔案程式碼如下
CString m_strFileName = "test.txt";
	CFile m_File;
	CFileException ex;
	if (!m_File.Open(m_strFileName,CFile::modeCreate | CFile::modeWrite | CFile::shareExclusive, &ex))
	{
		TCHAR szError[1024];
		ex.GetErrorMessage(szError,1024);
		AfxMessageBox(szError);
		return;
	} 
	else
	{
	}

        對於寫入二進位制檔案的程式碼如下
CString m_strFileName = "test";
	CFile m_File;
	CFileException ex;
	if (!m_File.Open(m_strFileName,CFile::modeCreate | CFile::modeWrite | CFile::shareExclusive | CFile::typeBinary, &ex))
	{
		TCHAR szError[1024];
		ex.GetErrorMessage(szError,1024);
		AfxMessageBox(szError);
		return;
	} 
	else
	{
	}

        二級制的讀取同文本檔案讀取相同只需加上CFile::typeBinary即可,這樣無論是在讀取還是寫入檔案如果這過程中出現什麼問題,都會給使用者彈出提醒對話方塊,告知使用者出錯!

對於CStdioFile在讀寫檔案過程中異常機制的處理與CFile相同,這裡不再贅述。