catch(CException e)捕获异常 不能实例化抽象类

qq_36141011 2016-09-14 06:35:35
try
{
if (JpegApplicability(filePath)==true)
AfxMessageBox("该图像适合隐写!");
else
AfxMessageBox("该图像不适合隐写!");
}
catch(CException e)
{
AfxMessageBox("读取文件错误!");
};

运行后显示error C2259: “CException”: 不能实例化抽象类

请问怎么解决?
...全文
329 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
小灸舞 2016-09-15
  • 打赏
  • 举报
回复
VS2003之后的版本中,CException的定义与VC++6.0中不同。用一个CException派生类代替CException。 MFC较好地将异常封装到CException类及其派生类中,自成体系,下表给出了MFC 提供的预定义异常: CMemoryException:内存不足 CFileException:文件异常 CArchiveException:存档/序列化异常 CNotSupportedException:响应对不支持服务的请求 CResourceException:Windows 资源分配异常 CDaoException:数据库异常(DAO 类) CDBException:数据库异常(ODBC 类) COleException:OLE 异常 COleDispatchException:调度(自动化)异常 CUserException:用消息框警告用户然后引发一般 CException 的异常 所以只要把上面的CException与异常类相对应的.比如文件异常,改成CFileException. 代码中采用将所有的CException改成了CFileException
paschen 版主 2016-09-14
  • 打赏
  • 举报
回复
应该使用其派生类,如:CFileException CMemoryException
paschen 版主 2016-09-14
  • 打赏
  • 举报
回复
CException是一个抽象类,而抽象类不允许有对象
paschen 版主 2016-09-14
  • 打赏
  • 举报
回复
改成catch (CException& e)呢

64,666

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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