다음을 통해 공유


SDK 오류 취급 모범 사례

이 자습서는 PlayFab SDK를 사용하여 API 오류에 액세스, 인식 및 취급하는 방법을 설명합니다.

여기서 설명하는 방법은 관리자, 서버 및 클라이언트 SDK에 동일하게 적용되지만 패턴은 선택한 언어에 따라 크게 달라집니다.

간단히 말해, 귀하가 선택한 패턴은 어떤 SDK(관리자/서버/클라이언트)에도 유효하지만 구현 세부 정보는 귀하의 프로그래밍 언어와 환경에 특정될 것입니다.

오류를 캐치하고 액세스하기

PlayFab SDK는 일반적으로 오류 개체를 반환함으로써 오류를 보고합니다. 다음 조각은 오류를 탐지하고 액세스하는 방법을 보여줍니다.

PlayFabClientAPI.LoginWithEmailAddress(new LoginWithEmailAddressRequest() {
    Email = "doesnotexist@mail.com",
    Password = "nevercorrect",
}, result => {
    // success
}, error => {
    // 'error' object is our point of access to error data
});

일반적으로 말해, 오류 개체가 정의된 경우(null 아님), 그것은 오류가 발생했음을 표시합니다. 그러면 오류를 더욱 검사할 수 있습니다.

오류 검사

오류를 검사하는 가장 일반적인 방법은 코드를 통해 오류를 인식하는 것입니다. 글로벌 API 메소드 오류 코드에서 설명한 바와 같이 생성된 오류 각각은 사람이 읽을 수 있는 오류 코드와 수치 오류 코드를 포함합니다.

참고 항목

따라서 코드 그 자체가 오류를 인식하고 처리하는 데 충분합니다.

한 예로서 LoginWithEmailAddress API 메소드를 들겠습니다. 이 메소드를 위한 설명서에서 언급한 바와 같이 집행시 다음 내부 오류가 발생할 수 있습니다:

  • InvalidTitleId 1004
  • AccountNotFound 1001
  • InvalidEmailOrPassword 1142
  • RequestViewConstraintParamsNotAllowed 1303

다음 메소드는 그러한 오류를 검사하고 인식하는 방법을 보여줍니다.

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;
    }
});

오류 취급

오류가 식별되면, 취급/복구 전략은 오류 타입과 성격에 의존합니다. 잘못된 인수 같은 오류는 재시도해도 결코 성공하지 못할 것입니다. 해당 API 호출에 성공하려면 요청을 수정해야 합니다.

재시도 전략을 적용할 수 있는 하위 오류 집합이 있습니다. 재시도 가능 오류 타입은 글로벌 API 메소드 오류 코드에 설명되어 있습니다.

재시도 전략을 적용할 때는 다음 요건을 충족해야 합니다:

  • 재시도할 때마다 재시도 사이의 지체를 상당히 늘려야 합니다. 그러면 호출 성공 가능성이 증가하고, 게임이 PlayFab 서버를 스패밍하는 것을 방지합니다(스패밍은 호출 거부 증가를 야기합니다).

  • 이 재시도 전략은 선택적으로 적용해야 합니다, 즉 재시도할 가치가 있는 코드를 위해서만 사용해야 합니다.

재시도해도 안전한 코드들의 목록은 글로벌 API 메소드 오류 코드 자습서를 참조하십시오.