Обработка ошибок
Ошибки будут приходить с http_code >= 400, поэтому рекомендуется делать десериализацию json и проверку ошибок именно с таким кодом ответа.
Пример ошибки
{
/* gRPC код ошибки. Ниже подробное описание */
"code": 3,
"details": [
/* Детали ошибки. Могут не приходить */
{
/* По этому @type можно уточнять ошибку в коде программы */
"@type": "type.googleapis.com/io.devision.rpc.ServiceError",
"kind": "ResourceAccessError",
"reason": "ENTITY_NOT_FOUND"
}
],
/* Текст ошибки (может менятся со временем) */
"message": "Entity not found. Alias=unknown_entity"
}
Описание code
Ошибки всегда будут соответствовать этому документу https://cloud.google.com/inference/reference/rest/v1/Code?hl=ru (opens in a new tab)
Ошибка | Описание | HTTP Mapping | Code |
---|---|---|---|
OK | Не ошибка, запрос успешно выполнился | HTTP Mapping: 200 OK | 0 |
CANCELLED | Операция была отменена | HTTP Mapping: 499 Client Closed Request | 1 |
NOT_FOUND | Не найдено. | HTTP Mapping: 404 Not Found | 5 |
INVALID_ARGUMENT | Вы передали неправильный параметр. | HTTP Mapping: 400 Bad Request | 3 |
DEADLINE_EXCEEDED | Не удалось выполнить операцию за разумное время | HTTP Mapping: 504 Gateway Timeout | 4 |
PERMISSION_DENIED | У вас нет прав на выполнение операции | HTTP Mapping: 403 Forbidden | 7 |
FAILED_PRECONDITION | Операция была отклонена, поскольку система не находится в состоянии, необходимом для выполнения операции. Например, удаляемый каталог не является пустым, бюджет аккаунта находится в неверном состоянии | HTTP Mapping: 400 Bad Request | 9 |
INTERNAL | Ошибка возникла на уровне нашей системы. Обратитесь в тех.поддержку. | HTTP Mapping: 500 Internal Server Error | 13 |