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

参数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\
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值