TsgcWSPServer_WAMP › Métodos › CallError
Envía una respuesta CALLERROR (tipo de mensaje 4) al llamador cuando el procedimiento remoto no pudo ejecutarse o finalizó sin éxito.
procedure CallError(const aCallId, aErrorURI, aErrorDesc: String; const aErrorDetails: String = '');
| Nombre | Tipo | Descripción |
|---|---|---|
aCallId | const String | Identificador generado por el cliente cuando invocó originalmente el procedimiento remoto; se usa para correlacionar la respuesta de error con la llamada pendiente. |
aErrorURI | const String | URI (o CURIE) que identifica de forma única la clase de error, por ejemplo http://example.com/error#not_authorized. |
aErrorDesc | const String | Descripción legible del error, útil para el registro y la depuración. |
aErrorDetails | const String | Carga ú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. |
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.
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;