我现在已经建立了一套机制,可以将服务端的异常返回到客户端,并得知出错的方法名称。
但是,按照这套机制要求编写服务端程序时比较麻烦,在每一个服务功能(对应的方法)中,
都必须用try ... except ... end俘获异常,象这样:
function TDataIDSoapService._CreateNumID(DSetID, DFieldID: string;
Reusable: boolean): TRemoteResult;
begin
try
Result:=CreateRemoteResult(DIDManager.CreateNumID(DSetID, DFieldID, Reusable));
except
on E:Exceptiondo
Result:=ErrorResult(E,'_CreateNumID',1);
end;
end;
其中 ErrorResult 创建一个包含错误信息的对象返回给客户端,客户端会进行相应的处理。
我现在是希望避免在每个方法中都加上 try ... except ... end 外套,而代之以一个统一的
异常俘获陷阱,并能够获知是哪个功能(方法)出的错。