TsgcWSPServer_WAMPMétodos › CallError

CallError Method

Envia uma resposta CALLERROR (mensagem do tipo 4) ao chamador quando o procedimento remoto não pôde ser executado ou foi finalizado sem sucesso.

Sintaxe

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

Parâmetros

NameTypeDescrição
aCallIdconst StringIdentificador gerado pelo cliente quando ele originalmente invocou o procedimento remoto; utilizado para correlacionar a resposta de erro com a chamada pendente.
aErrorURIconst StringURI (ou CURIE) que identifica de forma única a classe de erro, por exemplo http://example.com/error#not_authorized.
aErrorDescconst StringDescrição legível por humanos do erro, útil para registro e depuração.
aErrorDetailsconst StringPayload de erro opcional específico da aplicação (por exemplo, um objeto JSON com contexto extra). Passe uma string vazia quando não for necessário.

Observações

Invoque CallError de dentro de um handler OnCall (tipicamente do ramo except) quando o RPC não puder ser cumprido: argumentos inválidos, autorização ausente, exceção interna, timeout, etc. O servidor escreve um quadro WAMP CALLERROR [4, CallID, ErrorURI, ErrorDesc, ErrorDetails] para o chamador e remove a chamada da lista de pendentes, o que significa que nenhum outro CallResult ou CallProgressResult pode ser enviado para o mesmo aCallId. Se aCallId for desconhecido (já respondido, cancelado ou nunca registrado), o método não faz nada.

Exemplo

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;

Voltar para Métodos