TsgcWSPServer_WAMPMétodos › CallError

CallError Método

Envía una respuesta CALLERROR (tipo de mensaje 4) al llamador cuando el procedimiento remoto no pudo ejecutarse o finalizó sin éxito.

Sintaxis

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

Parámetros

NombreTipoDescripción
aCallIdconst StringIdentificador generado por el cliente cuando invocó originalmente el procedimiento remoto; se usa para correlacionar la respuesta de error con la llamada pendiente.
aErrorURIconst StringURI (o CURIE) que identifica de forma única la clase de error, por ejemplo http://example.com/error#not_authorized.
aErrorDescconst StringDescripción legible del error, útil para el registro y la depuración.
aErrorDetailsconst StringCarga útil de error opcional específica de la aplicación (por ejemplo, un objeto JSON con contexto adicional). Pase una cadena vacía cuando no sea necesario.

Observaciones

Invoque CallError desde dentro de un manejador OnCall (normalmente desde la rama except) cuando la RPC no pueda cumplirse: argumentos no válidos, autorización ausente, excepción interna, tiempo de espera agotado, etc. El servidor escribe un frame WAMP CALLERROR [4, CallID, ErrorURI, ErrorDesc, ErrorDetails] al llamante y elimina la llamada de la lista pendiente, lo que significa que no se puede enviar ningún otro CallResult o CallProgressResult para el mismo aCallId. Si aCallId es desconocido (ya respondido, cancelado o nunca registrado), el método no hace nada.

Ejemplo

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;

Volver a Métodos