windows 中 try catch 异常

    技术2022-07-10  126

    格式:

     try

    {

    }

    catch(...)  //表示任何异常

    {

    }

    CException是Microsoft基本类库中处理各种异常的基础库。

    CException是一个抽象基类,不可构造一个CException对象.

    其派生库及描述如下:

    CMemoryException

    内存不够CNotSupportedException请求不支持的操作CArchiveException文档指定异常CFileException文件指定异常CResourceExceptionWindows资源未找到或不可创建COleExceptionOLE异常CDBException数据库异常(即基于开放数据库连接的MFC数据库类出现异常)COleDispatchExceptionOLE发送(自动)异常CUserException资源无法找到CDaoException数据访问对象异常(即DAO类出现异常)CInternetExceptionInternet异常(即Internet类出现异常)

    1.可以在try{}中手动抛出异常throw/

    2.可以使用多个catch来捕捉异常。

    3.可以调用GetErrorMessage或ReportError来向用户报告异常的详细情况。

    4.如果Catch关键字得到异常,则不会自动删除。需调用delete函数。

     

    CException

    构造一个CException对象Delete删除一个CException对象GetErrorMessage获取异常描述信息ReportError在消息框中向用户报告一个错误信息

     

     try

    {

    }

    catch(CException *e)  //

    {

       e->ReportError();

       e->delete();

    }

     

    使用的场景有:原则是容易抛出异常地方,如

    1.内存操作的,分配、释放、移动

    2.序列化读写文件CArchive

    3.使用第三方接口读写excel文件。

    bad_alloc 是operator new不能满足内存分配请求时抛出的异常类型。

     try

    {

    }

    catch(bad_alloc  &e)  //

    {

    }

     

     try

    {

    }

    catch(std::bad_alloc  &)  //

    {

    }

    Processed: 1.007, SQL: 9