VC一个可以catch数据库错误消息和其他错误消息的宏

来源:互联网 发布:淘宝店可以转让吗 编辑:程序博客网 时间:2024/06/05 19:13

参数b是显示catch到的错误后的后续处理代码

参数c是数据库连接指针_ConnectionPtr的对象,用于捕捉数据库错误消息

其中用到的下面两个函数,见本专栏其他文章。

GetProviderError(_ConnectionPtr)
GetComError(_com_error &e)

#define MYCATCH(b,c) \

catch(const _com_error& e)\{\CString sBuff = GetProviderError(c);\if(sBuff.IsEmpty())\{\sBuff=GetComError(e);\}\AfxMessageBox(sBuff);\b\}\catch(COleException* e)\{\if(e)\{\CString szMsg;\e->GetErrorMessage(szMsg.GetBuffer(255), 255);\szMsg.ReleaseBuffer();\AfxMessageBox(szMsg);\e->Delete();\}\b\}\catch(COleDispatchException* e)\{\if(e)\{\AfxMessageBox(e->m_strDescription);\e->Delete();\}\b\}\catch(CMemoryException* e)\{\if(e) e->Delete();\AfxMessageBox(_T("Out-of-memory."));\b\}\catch(LPCTSTR e)\{\AfxMessageBox(e);\b\}\catch(...)\{\AfxMessageBox(TEXT("<Unexpected Error>"));\b\}


原创粉丝点击