当前位置: 源码素材网 » VC++教程 » 详情页

VC++处理各种打开文件时的异常错误

  •   时间:2019-03-13
  • 概述:Exception 异常处理

VC++异常处理例子,用来显示在打开文件过程中,所有可能遇到的文件错误,一个好的程序,必是有很好的错误处理机制,考虑到很多可能会出错的情况,并处理这些错误,例软件稳定运行。以下就是一个VC++在打开TXT的过程中,可能遇到的几种错误的处理方法,供您参考:

void CExceptionDlg::OnButopen()
{
	CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
		"All Files(*.TXT)|*.TXT||",AfxGetMainWnd());//构造文件打开对话框
	CString strPath;//声明变量
	if(dlg.DoModal() == IDOK)//判断是否按下"打开"按钮
	{
		strPath = dlg.GetPathName();//获得文件路径
		m_Path.SetWindowText(strPath);//显示文件路径
		CFile file;
		CFileException pException;
		file.Open(strPath,CFile::modeRead,&pException);//打开文件
		switch(pException.m_cause)
		{
		case CFileException::none:
			m_Text.SetWindowText("无错误发生");//显示出错内容
			break;
		case CFileException::generic:
			m_Text.SetWindowText("发生未指定错误");//显示出错内容
			break;
		case CFileException::badPath:
			m_Text.SetWindowText("全部或部分路径无效");//显示出错内容
			break;
		case CFileException::tooManyOpenFiles:
			m_Text.SetWindowText("超过允许打开的文件数");//显示出错内容
			break;
		case CFileException::accessDenied:
			m_Text.SetWindowText("文件不可访问");//显示出错内容
			break;
		case CFileException::invalidFile:
			m_Text.SetWindowText("想使用一个无效的文件句柄");//显示出错内容
			break;
		case CFileException::directoryFull:
			m_Text.SetWindowText("再无目录可访问");//显示出错内容
			break;
		case CFileException::hardIO:
			m_Text.SetWindowText("硬件错误");//显示出错内容
			break;
		case CFileException::diskFull:
			m_Text.SetWindowText("磁盘满");//显示出错内容
			break;
		}
		file.Close();//关闭文件
	}
}

    相关声明:

      若“VC++处理各种打开文件时的异常错误”有损您的权益,请告之我们删除内容。
      部分文章来源于网络,版权归原作者所有。