希望用简单透明的办法能够把异常信息抛到调用者进程,可以做到吗?

解决方案 »

  1.   

    COM规范规定任何异常不能逃脱这个对象的范围之外,因为客户端可能不支持异常机制。也就是说,不应该从一个对象抛出任何异常。标准的方法可以用支持IErrorInfo的错误对象在一个线程内传送错误信息。
      

  2.   

    也就是说传来传去还是在COM服务自己的进程里?我看了IErrorInfo,还是比较复杂,实现这接口的代价比较高,还不如自己作一个全局错误管理类简单。
      

  3.   

    可以在COM服务进程类捕获异常,通过捕获的异常,返回自定义的错误代码,不过调用着进程的错误代码必须保持与其一致。
    例如:
    TRY
    {
    }
    CATCH_ALL( pe )
    {
         pe->Delete();
         return ERR_MEMORY_ALLOC
    }
    END_CATCH