Freigeben über


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 .