エラーハンドリング

SDKの各メソッドの呼び出しでエラーが発生した場合、コールバック関数や例外でエラーハンドリングを行うことができます。

例えば、データ管理機能のオブジェクトデータを1件取得するで存在しないコードを指定すると、エラーを返却します。

エラーはステータスコードで区別することができます。詳細なエラーの内容はメッセージなどを確認してください。

// 9999は存在しないコード
RKZService.sharedInstance().getData("shop", code: "9999") { objectData, responseStatus in
    if responseStatus.isSuccess, let objectData = objectData {
        // 成功時
        // ...
    } else {
        // 失敗
        // responseStatusの各プロパティでエラーの詳細を確認できる
        print("statusCode:", responseStatus.statusCode.rawValue) // ステータスコード
        print("message:", responseStatus.message ?? "") // エラーメッセージ
        print("detailMessage:", responseStatus.detailMessage ?? "") // エラー詳細メッセージ
    }
}
// 9999は存在しないコード
[[RKZService sharedInstance] getData:@"shop" code:@"9999" withBlock:^(RKZObjectData * _Nullable objectData, RKZResponseStatus * _Nonnull responseStatus) {
    if (responseStatus.isSuccess) {
        // 成功時
        // ...
    } else {
        // 失敗
        // responseStatusの各プロパティでエラーの詳細を確認できる
        NSLog(@"statusCode: %ld", responseStatus.statusCode); // ステータスコード
        NSLog(@"message: %@", responseStatus.message); // エラーメッセージ
        NSLog(@"detailMessage: %@", responseStatus.detailMessage); // エラー詳細メッセージ
    }
}];
// 9999は存在しないコード
RKZClient.getInstance().getData("shop", "9999") { objectData, rkzResponseStatus ->
    if (rkzResponseStatus.isSuccess) {
        // 成功時
        // ...
    } else {
        // 失敗
        // rkzResponseStatusの各プロパティでエラーの詳細を確認できる
        Log.e(TAG, "statusCode: ${rkzResponseStatus.statusCode}") // ステータスコード
        Log.e(TAG, "message: ${rkzResponseStatus.message}") // エラーメッセージ
    }
}
// 9999は存在しないコード
RKZClient.getInstance().getData("shop", "9999", new OnGetRKZObjectDataListener() {
    @Override
    public void onGetRKZObjectData(RKZObjectData rkzObjectData, RKZResponseStatus rkzResponseStatus) {
        if (rkzResponseStatus.isSuccess()) {
            // 成功時
            // ...
        } else {
            // 失敗
            // rkzResponseStatusの各プロパティでエラーの詳細を確認できる
            Log.e(TAG, "statusCode: " + rkzResponseStatus.getStatusCode());
            Log.e(TAG, "message: " + rkzResponseStatus.getMessage());
        }
    }
});
// 9999は存在しないコード
RKZClient.getData('shop', '9999', function (data) {
  // 成功時
  // ...
}, function (error) {
  // errorの各プロパティでエラーの詳細を確認できる
  console.error('status_code:', error.status_code) // ステータスコード
  console.error('message:', error.message) // エラーメッセージ
  console.error('detail_message:', error.detail_message) // エラー詳細メッセージ
})
try {
  // 9999は存在しないコード
  const data = await RKZ.Data.get('shop', '9999')
  // ...
} catch (error) {
  // errorの各プロパティでエラーの詳細を確認できる
  console.error('status_code:', error.status_code) // ステータスコード
  console.error('message:', error.message) // エラーメッセージ
  console.error('detail_message:', error.detail_message) // エラー詳細メッセージ
  console.error('cause:', error.cause) // 元のエラー(HTTPエラーが発生した場合、設定される)
}
try {
  // 9999は存在しないコード
  final data = await RKZClient.instance.getData('shop', '9999');
  // ...
} on PlatformException catch(e) {
  // PlatformExceptionの各プロパティでエラーの詳細を確認できる
  print('code: ${e.code}'); // ステータスコード
  print('message: ${e.message}'); // エラーメッセージ
  print('details: ${e.details}'); // エラー詳細メッセージ
}