COM+ 如何修改返回值

COM+ 从不更改指示失败的 HRESULT 的返回值,例如 E_UNEXPECTED or E_FAIL。 但是,当使用 COM+ 功能的对象返回指示成功的 HRESULT 值(例如,S_OK、 S_FALSE 或 NOERROR)时,COM+ 有时会在返回到调用方之前将 HRESULT 转换为 COM+ 错误代码。

例如,当应用程序在调用 IObjectContext::SetComplete 后返回 S_OK 时,如果对象是未能提交的事务的根,则 HRESULT 将转换为 CONTEXT_E_ABORTED。

当 COM+ 转换 HRESULT 值时,它将清除该方法的所有输出参数。 返回的引用将释放,返回的对象指针的值设置为 NULL

故障隔离和 Failfast 策略

查找错误来源

解释错误代码

COM+ 中的错误处理策略

故障排除