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 메소드 오류 코드 자습서를 참조하십시오.