TsgcWSPServer_WAMP › Métodos › CallError
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.
procedure CallError(const aCallId, aErrorURI, aErrorDesc: String; const aErrorDetails: String = '');
| Name | Type | Descrição |
|---|---|---|
aCallId | const String | Identificador gerado pelo cliente quando ele originalmente invocou o procedimento remoto; utilizado para correlacionar a resposta de erro com a chamada pendente. |
aErrorURI | const String | URI (ou CURIE) que identifica de forma única a classe de erro, por exemplo http://example.com/error#not_authorized. |
aErrorDesc | const String | Descrição legível por humanos do erro, útil para registro e depuração. |
aErrorDetails | const String | Payload 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. |
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.
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;