在VC+ATL中,用如下方法:
try{
  xxx.xxx
}catch(_com_error &e){
  return error("");
}
然后在客户端TRY,然后显示e.message就可以得到自定义的错误消息,那么在DELPHI应该如何做?

解决方案 »

  1.   

    **Cast try
       {do something}
     except
       raise exception.Create('Error message.');
     end;**catchtry
      {your method}
    except
      on e : Exception do
      showmessage('This's my cast message :' +e.message);
    end;
      

  2.   

    楼上的方法在COM的客户调用该方法时,还是取不到错误信息
      

  3.   

    接口方法的调用约定 设为 safecall,Delphi 会把 COM Error Object 包装成异常,这样就可以用 try...except end 来捕获
      

  4.   

    但是我发觉如果在COM中如果方法又调用了其他函数,这个函数中引发异常,那么这个方法就捕获不到,很奇怪而且我两个方法,一模一样的写法,一个在COM外能捕获到自定义信息,另一个就不行,始终抱“致命错误”,我都郁闷坏了。