Skip to content

Error Handling

Comprehensive Error Handling Strategy:

public class ByteriaErrorHandler {
private static final int MAX_RETRY_ATTEMPTS = 3;
private static final long RETRY_DELAY_MS = 5000;
public void handleError(AlphynCallbackResult result) {
switch (result.getOriginalEventType()) {
case INIT_FAILED:
handleInitializationError(result);
break;
case NETWORK_ERROR:
handleNetworkError(result);
break;
case KEYSTORE_FAILED:
handleKeystoreError(result);
break;
case SCAN_FAILED:
handleScanError(result);
break;
default:
handleGenericError(result);
break;
}
}
private void handleInitializationError(AlphynCallbackResult result) {
Log.e("Byteria", "Initialization failed: " + result.getMessage());
// Check for common initialization issues
if (result.getMessage().contains("invalid key")) {
notifyInvalidKey();
} else {
scheduleRetryInitialization();
}
}
private void handleNetworkError(AlphynCallbackResult result) {
Log.w("Byteria", "Network error: " + result.getMessage());
// Implement exponential backoff retry
scheduleNetworkRetry();
}
private void scheduleRetryInitialization() {
new Handler(Looper.getMainLooper()).postDelayed(() -> {
// Retry initialization logic
retryInitialization();
}, RETRY_DELAY_MS);
}
}