TsgcWSPServer_WAMPMethoden › CallError

CallError Methode

Verzendt een CALLERROR-antwoord (berichttype 4) naar de aanroeper wanneer de externe procedure niet kon worden uitgevoerd of niet succesvol is voltooid.

Syntaxis

procedure CallError(const aCallId, aErrorURI, aErrorDesc: String; const aErrorDetails: String = '');

Parameters

NaamTypeBeschrijving
aCallIdconst StringIdentificator gegenereerd door de client toen het de remote procedure oorspronkelijk aanriep; wordt gebruikt om de foutmelding te correleren met de openstaande aanroep.
aErrorURI const StringURI (of CURIE) die de foutklasse uniek identificeert, bijvoorbeeld http://example.com/error#not_authorized.
aErrorDescconst StringVoor mensen leesbare beschrijving van de fout, nuttig voor logging en debugging.
aErrorDetailsconst StringOptionele toepassingsspecifieke foutpayload (bijvoorbeeld een JSON-object met extra context). Geef een lege tekenreeks door wanneer dit niet nodig is.

Opmerkingen

Roep CallError aan vanuit een OnCall-handler (doorgaans vanuit de except-branch) wanneer de RPC niet kan worden uitgevoerd: ongeldige argumenten, ontbrekende autorisatie, interne uitzondering, time-out, enz. De server schrijft een WAMP CALLERROR-frame [4, CallID, ErrorURI, ErrorDesc, ErrorDetails] naar de aanroeper en verwijdert de aanroep uit de wachtrij, wat betekent dat er geen verdere CallResult of CallProgressResult kan worden verzonden voor dezelfde aCallId. Als aCallId onbekend is (al beantwoord, geannuleerd of nooit geregistreerd), doet de methode niets.

Voorbeeld

procedure TForm1.sgcWSPServer_WAMP1Call(Connection: TsgcWSConnection;
  const CallId, ProcURI: string; Arguments: TStringList);
begin
  try
    if ProcURI = 'com.example.divide' then
      sgcWSPServer_WAMP1.CallResult(CallId, IntToStr(10 div StrToInt(Arguments[0])));
  except
    on E: Exception do
      sgcWSPServer_WAMP1.CallError(CallId,
        'http://example.com/error#invalid_argument', E.Message, '');
  end;
end;

Terug naar methoden