如果接口中的方法执行时可能产生异常,怎样才能在客户程序中捕捉到?

解决方案 »

  1.   

    procedure TForm_BaseBill.ClientDataSet1DeleteError(DataSet: TDataSet;
      E: EDatabaseError; var Action: TDataAction);
    begin
      inherited;
    procedure TForm_BaseBill.ClientDataSet1EditError(DataSet: TDataSet;
      E: EDatabaseError; var Action: TDataAction);
    begin
      inherited;
    等等!
      

  2.   

    如果接口方法的调用约定为 safecall,可以在客户端直接捕获异常。try
      ......
      MyInterface.MyMothed(.....);
      ......
    except
      on EOleException do 
      ......
    end;
      

  3.   

    如果接口方法的调用约定为 stdcall,需要使用 OleCheck。try
      ......
      OleCheck(MyInterface.MyMothed(.....));
      ......
    except
      on EOleException do 
      ......
    end;
      

  4.   

    谢谢,不过我怎样在接口的方法中改变hresult返回值呢?
    delphi自己生成的实现文件中没有这个返回值啊?