TsgcWSPServer_WAMP › Yöntemler › CallError
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.
procedure CallError(const aCallId, aErrorURI, aErrorDesc: String; const aErrorDetails: String = '');
| Name | Type | Açıklama |
|---|---|---|
aCallId | const 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. |
aErrorURI | const String | Hata sınıfını benzersiz şekilde tanımlayan URI (veya CURIE), örneğin http://example.com/error#not_authorized. |
aErrorDesc | const String | Hatanın insan tarafından okunabilir açıklaması; günlük kaydı ve hata ayıklama için kullanışlıdır. |
aErrorDetails | const 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. |
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.
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;