CFile异常:CFileException::fileNotFound

ray1989716 2015-07-29 03:20:50
TRY{
File.Open(FilePath,CFile::modeCreate|CFile::modeWrite);
File.Write(Data,DataLen);
File.Flush();
File.Close();
return;
}
CATCH(CFileException,e )
{
.......
}END_CATCH

确保FilePath路径正确,IO操作很频繁,会出现CFileException::fileNotFound这种异常,想知道为什么?
有没有好的方法可以替代~
...全文
650 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ray1989716 2015-07-29
  • 打赏
  • 举报
回复
引用 3 楼 numen27 的回复:
这个用法不对吧,MSDN文档CFile::Open上这么说的: If you don't supply the pError parameter, or if you pass NULL for pError, Open will return FALSE and not throw a CFileException. 就是你这种用法,Open函数应该不会抛出CFileException吧。 应该这么用: CFile file; CFileException ex; if (!file.Open( FilePath,CFile::modeCreate|CFile::modeWrite, &ex)) { TCHAR szError[1024]; ex.GetErrorMessage(szError, 1024); cout << "Open file "<<FilePath<<" Failed:"<<szError; }
刚刚测试过你说的,的确如此。不提供CFileException* pError 这个参数或者为NULL,异常将被忽略。所以我之前抓的异常并不是Open报的,不能反映Open失败的原因,谢谢。
numen27 2015-07-29
  • 打赏
  • 举报
回复
这个用法不对吧,MSDN文档CFile::Open上这么说的: If you don't supply the pError parameter, or if you pass NULL for pError, Open will return FALSE and not throw a CFileException. 就是你这种用法,Open函数应该不会抛出CFileException吧。 应该这么用: CFile file; CFileException ex; if (!file.Open( FilePath,CFile::modeCreate|CFile::modeWrite, &ex)) { TCHAR szError[1024]; ex.GetErrorMessage(szError, 1024); cout << "Open file "<<FilePath<<" Failed:"<<szError; }
ray1989716 2015-07-29
  • 打赏
  • 举报
回复
引用 1 楼 xiaoc1026 的回复:
File.Open 都不判断返回值就往下执行?
你的意思是Open失败了吧,ok,对返回值加上判断,另外程序中我会尝试4次,联系4次都是同样的CFileException::fileNotFound,为什么会出现这样的现象呢?有办法优化吗?谢谢。
见习学术士 2015-07-29
  • 打赏
  • 举报
回复
File.Open 都不判断返回值就往下执行?
【变分多谐波对偶模式追踪】从噪声信号中提取重复瞬态分量的方法(Matlab代码实现)内容概要:本文介绍了“变分多谐波对偶模式追踪”这一信号处理方法,旨在从含有噪声的信号中有效提取重复出现的瞬态成分。该方法结合了变分模态分解与多谐波分析的优势,通过构建对偶模式追踪模型,实现了对微弱瞬态特征的精准分离与增强,特别适用于机械故障诊断、生物医学信号处理等领域。文中详细阐述了算法原理、数学模型构建及其实现步骤,并提供了基于Matlab的代码实现,便于读者复现与应用。; 适合人群:具备一定信号处理基础,从事机械故障诊断、生物医学工程或相关领域的研究生及科研人员。; 使用场景及目标:①从强噪声背景中提取机械设备的周期性冲击信号以进行故障预警;②分析生物医学信号中的重复生理事件,如心电图或脑电图中的特定波形;③为需要高精度瞬态特征提取的研究提供可靠的算法支持与实现范例。; 阅读建议:此资源以Matlab代码实现为核心,不仅展示了算法的具体编程细节,还强调了理论与实践的紧密结合。学习者应在理解算法原理的基础上,动手运行并调试所提供的代码,通过改变参数观察结果变化,从而深入掌握该方法的应用技巧与优化策略。
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究(Matlab代码实现)内容概要:本文研究了非线性值迭代自适应动态规划(ADP)方法,旨在解决离散时间非线性系统的最优控制问题。通过构建近似动态规划框架,结合值迭代算法,利用函数逼近器(如神经网络)对系统代价函数进行学习与优化,逐步逼近最优控制策略。文中详细阐述了算法的数学推导、收敛性分析及其实现流程,并以典型非线性系统为例,采用Matlab进行仿真验证,展示了该方法在处理复杂非线性系统优化控制方面的有效性与优越性。; 适合人群:具备自动控制理论、最优化方法及Matlab编程基础的研究生、科研人员以及从事智能控制、工业自动化等相关领域的工程技术人员。; 使用场景及目标:①研究和解决离散时间非线性系统的最优控制问题;②学习和掌握自适应动态规划(ADP)及值迭代算法的核心思想与实现技巧;③利用Matlab进行先进控制算法的仿真与验证,为复杂系统控制设计提供理论依据和技术支持。; 阅读建议:此资源侧重于理论与实践的结合,建议读者在学习过程中,不仅关注算法的数学推导,更要动手实践Matlab代码,通过调整参数、更换被控对象等方式加深理解,并尝试将其应用于其他类型的非线性系统控制问题中。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧