Обработка ошибок
Возможные ошибки:
PaymentTerminalExceptionBase— ошибки терминала/EMV.BaseSdkException/CommonSdkException— валидация/логика.NetworkSdkException— сеть/TMS.CancellationException— отмена операции.
Рекомендованный паттерн устранения:
try {
val tx = DriverImpl.core.pay(data)
// success UI
} catch (e: CancellationException) {
// пользователь отменил/операция остановлена
} catch (e: PaymentTerminalExceptionBase) {
// показать текст ошибки терминала / повторить
} catch (e: NetworkSdkException) {
// сетевые/TMS проблемы
} catch (e: BaseSdkException) {
// валидация/некорректный вход
}