エラーハンドリング
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}'); // エラー詳細メッセージ
}