我想處理數據庫連接錯誤。如果CDatabase::Open
(或CDatabase::OpenEx
)失敗,則通常拋出CDBException
。但有事。我無法處理它!未處理的CDBException,同時有一個適當的「趕上」
這裏是我的代碼:
try
{
CDatabase db;
db.OpenEx(L"DSN=INVALID_DSN;UID=noname", CDatabase::noOdbcDialog);
wprintf(L"Connection established.\n"
L"DSN used: %s\n"
L"DB name: %s\n",
db.GetConnect().GetBuffer(),
db.GetDatabaseName().GetBuffer());
db.Close();
puts("Connection closed.");
}
catch (CDBException& e)
{
e.GetErrorMessage(buf, BUF_SIZE);
wprintf(L"CDBException: %s\n", buf);
}
catch (CException& e)
{
e.GetErrorMessage(buf, BUF_SIZE);
wprintf(L"CException: %s\n", buf);
}
catch (std::exception& e)
{
printf("STD exception: %s\n", e.what());
}
// this section is the only way to handle exception thrown by the CDatabase::OpenEx
//catch (...)
//{
// puts("Unknown exception");
//}
如果最後catch
的評論,我得到錯誤的通知:
我使用Visual Studio 2013(版本12.0.40629.00更新5)
雖然此鏈接可以回答這個問題,最好是在這裏有答案的主要部件,並提供鏈接以供參考。如果鏈接頁面更改,則僅鏈接答案可能會失效 – Nehal