TsgcWSPServer_WAMPYöntemler › CallError

CallError Yöntem

Uzak prosedür yürütülemediğinde veya başarısız bir şekilde tamamlandığında çağırana bir CALLERROR yanıtı (mesaj türü 4) gönderir.

Sözdizimi

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

Parametreler

NameTypeAçıklama
aCallIdconst Stringİstemci uzak yordamı başlangıçta çağırdığında ürettiği tanımlayıcı; hata yanıtını bekleyen çağrıyla ilişkilendirmek için kullanılır.
aErrorURIconst StringHata sınıfını benzersiz şekilde tanımlayan URI (veya CURIE), örneğin http://example.com/error#not_authorized.
aErrorDescconst StringHatanın insan tarafından okunabilir açıklaması; günlük kaydı ve hata ayıklama için kullanışlıdır.
aErrorDetailsconst Stringİsteğe bağlı uygulamaya özgü hata yükü (örneğin ekstra bağlam içeren bir JSON nesnesi). Gerekli olmadığında boş bir dize geçirin.

Remarks

RPC gerçekleştirilemediğinde (geçersiz argümanlar, eksik yetkilendirme, dahili özel durum, zaman aşımı vb.) bir OnCall işleyicisinin içinden (tipik olarak except dalından) CallError çağırın. Sunucu, çağırana bir WAMP CALLERROR çerçevesi [4, CallID, ErrorURI, ErrorDesc, ErrorDetails] yazar ve çağrıyı bekleyenler listesinden kaldırır, bu da aynı aCallId için daha fazla CallResult veya CallProgressResult gönderilemeyeceği anlamına gelir. aCallId bilinmiyorsa (zaten yanıtlanmış, iptal edilmiş veya hiç kaydedilmemiş) yöntem hiçbir şey yapmaz.

Örnek

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;

Yöntemlere Dön