举个例子:
用ADO连接数据库
BOOL isConnectOk = TRUE;
try
{
m_Connection.CreateInstance(__uuidof(Connection));
m_Connection->Open(DATASOURCE, "", "", adModeUnknown);
}
catch (...)
{
isConnectOk = FALSE;
}上面的程序段应该是很常见的,可是要命的是,CreateInstance和Open这些函数本身还有返回值,返回值中也有表示错误的值,
大家看看上面的程序段的最理想形式:
BOOL isConnectOk = TRUE;
HRESULT hr;
try
{
hr = m_Connection.CreateInstance(__uuidof(Connection));
if FAILED(hr)
isConnectOk = FALSE;
else
{
hr = m_Connection->Open(DATASOURCE, "", "", adModeUnknown);
if FAILED(hr)
isConnectOk = FALSE;
}
}
catch (...)
{
isConnectOk = FALSE;
}上面的程序可以说是最理想的了,可是很麻烦(上面只有一个连接,如果有多个连接呢,如果还有打开记录集呢等等),程序太长,我很想知道你们是怎么处理这个问题的?