zoukankan      html  css  js  c++  java
  • MFC异常 与C++标准异常

    1 MFC异常

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

    异常类

    含义

    CMemoryException

    内存不足

    CFileException

    文件异常

    CArchiveException

    存档/序列化异常

    CNotSupportedException

    响应对不支持服务的请求

    CResourceException

    Windows 资源分配异常

    CDaoException

    数据库异常(DAO 类)

    CDBException

    数据库异常(ODBC 类)

    COleException

    OLE 异常

    COleDispatchException

    调度(自动化)异常

    CUserException

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

     2 标准异常

    下面给出了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(),它返回一个表示异常的字符串指针。

  • 相关阅读:
    Linux启动报错missing operating system
    Linux tmp目录自动清理总结
    ORACLE口令管理
    oom_kill_process造成数据库挂起并出现found dead shared server
    Oracle shutdown immediate遭遇ORA-24324 ORA-24323 ORA-01089
    从flink-example分析flink组件(1)WordCount batch实战及源码分析
    从mysql高可用架构看高可用架构设计
    由mysql分区想到的分表分库的方案
    六边形效果
    迷你MVVM框架 avalonjs1.5.2 发布
  • 原文地址:https://www.cnblogs.com/zhoug2020/p/2541098.html
Copyright © 2011-2022 走看看