ApiError. Android
Если произойдет какая-либо ошибка, вы получите объект ApiError
от Throwable.
ErrorType
— показывает информацию о типичных ошибках.
name
— имя ошибки.
message
— информационное сообщение, отправленное с сервера.
statusCode
— код состояния ошибки, если ошибка исходила от сервера.
Типы ошибок
Коды состояния запроса 419 и 422 следует обрабатывать путем разделения потока аутентификации.
Например, как обрабатывать ошибки входа в систему:
fun handleErrors() {
if (throwable is HttpException) {
when (throwable.code()) {
419 -> {
val response = getLoginResponse(error)
if (response != null) {
// В этом случае у вас ограниченное количество сеансов, и вам следует удалить один из них, чтобы войти в систему с новым сеансом
} else {
// Ваша типичная ошибка обработки
}
}
422 -> {
if (throwable.isCaptchaNeeded()) {
// Если есть ошибка капчи, вам следует обновить капчу
} else {
// Ваша типичная ошибка обработки
}
}
else -> {
// Ваши типичные ошибки обработки
}
}
} else {
// Ваши типичные ошибки обработки
}
}
О кодах состояния и о том, как с ними обращаться
401 — Unauthorised, вам следует выйти из системы
403 — Forbidden, когда у вас не было разрешения на вызов запроса
409 — Force Update, когда вам нужно обновить версию SDK
419 — Session Expired, следует удалить какой-то сеанс для входа в систему
422 — Incorrect Data, вызовите getErrorMessage422(throwable: Throwable), чтобы получить текстовую ошибку
429 — Request Limit, когда произошло слишком много запросов
503 — Technical Error, вы можете показать собственное сообщение об ошибке или экран
500 — Server Error, вы можете показать собственное сообщение об ошибке или экран
Unknown error — неизвестная ошибка
No internet connection — нет соединения