MFC异常 与C++标准异常

简介:

MFC异常

MFC 较好地将异常封装到CException类及其派生类中,自成体系,下表给出了MFC 提供的预定义异常:

异常类

含义

CMemoryException

内存不足

CFileException

文件异常

CArchiveException

存档/序列化异常

CNotSupportedException

响应对不支持服务的请求

CResourceException

Windows 资源分配异常

CDaoException

数据库异常(DAO 类)

CDBException

数据库异常(ODBC 类)

COleException

OLE 异常

COleDispatchException

调度(自动化)异常

CUserException

用消息框警告用户然后引发一般 CException 的异常

 标准异常

 

下面给出了C++提供的一些标准异常:

namespace std

{

    //exception 派生

    class logic_error; // 逻辑错误,在程序运行前可以检测出来

   

    //logic_error 派生

    class domain_error; // 违反了前置条件

    class invalid_argument; // 指出函数的一个无效参数

    class length_error; // 指出有一个超过类型size_t的最大可表现值长度的对象的企图

    class out_of_range; // 参数越界

    class bad_cast; // 在运行时类型识别中有一个无效的dynamic_cast表达式

    class bad_typeid; // 报告在表达试typeid(*p)中有一个空指针p

   

    //exception 派生

    class runtime_error; // 运行时错误,仅在程序运行中检测到

   

    //runtime_error 派生

    class range_error; // 违反后置条件

    class overflow_error; // 报告一个算术溢出

    class bad_alloc; // 存储分配错误

}

请注意观察上述类的层次结构,可以看出,标准异常都派生自一个公共的基类exception。基类包含必要的多态性函数提供异常描述,可以被重载。下面是exception类的原型:

class exception

{

public:

    exception() throw();

    exception(const exception& rhs) throw();

    exception& operator=(const exception& rhs) throw();

    virtual ~exception() throw();

    virtual const char *what() const throw();

};

其中的一个重要函数为what(),它返回一个表示异常的字符串指针。



本文转自莫水千流博客园博客,原文链接:http://www.cnblogs.com/zhoug2020/archive/2012/06/07/2541098.html,如需转载请自行联系原作者

相关文章
|
28天前
|
算法 编译器 C语言
【C++ 异常】C++ 标准库异常类及其应用
【C++ 异常】C++ 标准库异常类及其应用
28 0
|
1月前
|
C++
C++ 捕获所有异常并拿到错误原因的方法
C++ 捕获所有异常并拿到错误原因的方法
|
29天前
|
安全 算法 C++
【C++ 异常 】深入了解C++ 异常机制中的 terminate()处理 避免不必要的错误(三)
【C++ 异常 】深入了解C++ 异常机制中的 terminate()处理 避免不必要的错误
47 0
|
1月前
|
存储 安全 算法
【C/C++ 关键字 函数说明符 】C++ noexcept 关键字(指定某个函数不抛出异常)
【C/C++ 关键字 函数说明符 】C++ noexcept 关键字(指定某个函数不抛出异常)
26 0
|
28天前
|
算法 程序员 编译器
【C++ 异常】深入探究C++的stdexcept类库
【C++ 异常】深入探究C++的stdexcept类库
20 0
|
29天前
|
存储 安全 NoSQL
【C++ 异常 】深入了解C++ 异常机制中的 terminate()处理 避免不必要的错误(二)
【C++ 异常 】深入了解C++ 异常机制中的 terminate()处理 避免不必要的错误
37 1
|
29天前
|
安全 程序员 编译器
【C++ 异常 】深入了解C++ 异常机制中的 terminate()处理 避免不必要的错误(一)
【C++ 异常 】深入了解C++ 异常机制中的 terminate()处理 避免不必要的错误
65 1
|
1月前
|
设计模式 安全 编译器
【C++ 异常】C++异常处理:掌握高效、健壮代码的秘密武器
【C++ 异常】C++异常处理:掌握高效、健壮代码的秘密武器
54 1
|
1月前
|
C++
C++处理的异常的机制
C++处理的异常的机制
|
1月前
|
C语言 C++
C++异常
C++异常
26 0

热门文章

最新文章