Bewährte Methoden für die SDK-Fehlerbehandlung
In diesem Tutorial erfahren Sie, wie Sie mithilfe des PlayFab SDK auf API-Fehler zugreifen, diese erkennen und behandeln.
Die hier beschriebenen Methoden gelten gleichermaßen für die Administrator-, Server- und Client-SDKs. Die Muster hängen jedoch stark von der Sprache Ihrer Wahl ab.
Einfach ausgedrückt, ist das Muster Ihrer Wahl für jedes SDK (Administrator/Server/Client) gültig, aber implementierungsdetails sind spezifisch für Ihre Programmiersprache und Umgebung.
Abfangen und Zugreifen auf den Fehler
PlayFab SDKs melden in der Regel Fehler, indem ein Fehlerobjekt zurückgegeben wird. Der folgende Codeausschnitt zeigt, wie Sie den Fehler erkennen und darauf zugreifen.
PlayFabClientAPI.LoginWithEmailAddress(new LoginWithEmailAddressRequest() {
Email = "doesnotexist@mail.com",
Password = "nevercorrect",
}, result => {
// success
}, error => {
// 'error' object is our point of access to error data
});
Wenn ein Fehlerobjekt definiert ist (nicht NULL), gibt dies im Allgemeinen an, dass ein Fehler aufgetreten ist. Wir können den Fehler dann weiter untersuchen.
Überprüfen des Fehlers
Die gängigste Methode zum Überprüfen eines Fehlers besteht darin, ihn über den Code zu erkennen. Wie unter Fehlercodes für globale API-Methoden beschrieben, enthält jeder generierte Fehler lesbare und numerische Fehlercodes.
Notiz
Der Code allein reicht aus, um den Fehler entsprechend zu erkennen und zu verarbeiten.
Nehmen wir als Beispiel die LoginWithEmailAddress-API-Methode . Wie in der Dokumentation für diese Methode angegeben, können bei der Ausführung die folgenden internen Fehler ausgelöst werden:
InvalidTitleId 1004
AccountNotFound 1001
InvalidEmailOrPassword 1142
RequestViewConstraintParamsNotAllowed 1303
Die folgende Methode veranschaulicht, wie ein solcher Fehler überprüft und erkannt wird.
PlayFabClientAPI.LoginWithEmailAddress(new LoginWithEmailAddressRequest() {
Email = "doesnotexist@mail.com",
Password = "nevercorrect",
}, result => {
// success
}, error => {
// General purpose logging: GenerateErrorReport gives a bunch of information about the error
Debug.Log(error.GenerateErrorReport());
// Recognize and handle the error
switch (error.Error) {
case PlayFabErrorCode.InvalidTitleId:
// Handle invalid title id error
break;
case PlayFabErrorCode.AccountNotFound:
// Handle account not found error
break;
case PlayFabErrorCode.InvalidEmailOrPassword:
// Handle invalid email or password error
break;
case PlayFabErrorCode.RequestViewConstraintParamsNotAllowed:
// Handle not allowed view params error
break;
default:
// Handle unexpected error
break;
}
});
Behandeln des Fehlers
Sobald der Fehler identifiziert wurde, hängt die Handle-/Wiederherstellungsstrategie vom Typ und der Art des Fehlers ab. Fehler wie ungültige Argumente werden bei einem erneuten Versuch nie erfolgreich ausgeführt. Die Anforderung muss behoben werden, damit dieser API-Aufruf erfolgreich ist.
Es gibt eine Teilmenge von Fehlern, bei denen eine Wiederholungsstrategie angewendet werden kann. Wiederholungsfähige Fehlertypen werden unter Fehlercodes der globalen API-Methode beschrieben.
Stellen Sie sicher, dass sie die folgenden Anforderungen erfüllen, wenn Sie eine Wiederholungsstrategie anwenden:
Mit jedem Wiederholungsversuch sollte die Verzögerung zwischen Wiederholungen exponentiell ansteigen . Dies erhöht Ihre Chancen auf einen erfolgreichen Anruf und verhindert, dass Ihr Spiel den PlayFab-Server spammiert (was zu mehr abgelehnten Anrufen führt).
Sie sollten diese Wiederholungsstrategie selektiv anwenden und sie nur für die Codes verwenden, die einen Wiederholungsversuch wert sind.
Eine Liste der Codes, die sicher wiederholt werden können, finden Sie in unserem Tutorial zu Fehlercodes für globale API-Methoden .