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

C++语言 码拜 8年前 (2016-09-22) 2728次浏览
   try
{
if (JpegApplicability(filePath)==true)
AfxMessageBox(“该图像适合隐写!”);
else
AfxMessageBox(“该图像不适合隐写!”);
}
catch(CException e)
{
AfxMessageBox(“读取文件错误!”);
};
运行后显示error C2259: “CException”: 不能实例化抽象类
问一下怎么解决?
解决方案

80

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

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明catch(CException e)捕获异常 不能实例化抽象类
喜欢 (0)
[1034331897@qq.com]
分享 (0)