3

我目前有这样的代码

IAcctMaintPtr acct(__uuidof(AcctMaint));
acct->GetAccountList(q);

现在此代码需要运行外部应用程序,否则在第一条语句之后我得到一个异常说明

myapp.exe 中 0x7739c41f (KernelBase.dll) 处未处理的异常:Microsoft C++ 异常:_com_error 在内存位置 0x003ccefc..

我试过了,catch( const std::exception& )但这似乎不起作用 - 没有捕捉到异常。

关于如何捕获此异常的任何建议?

4

1 回答 1

4

_com_error不是从std::exception派生的,但您可以明确地捕获它:

try {
    IAcctMaintPtr acct(__uuidof(AcctMaint));
    acct->GetAccountList(q);
} catch (_com_error& x) {
    // Handle error in 'x'...
}
于 2013-10-03T18:04:07.233 回答