Ответ
gRPC использует стандартные HTTP/2 статусы, но также предоставляет собственные коды статусов для более точного описания ошибок. Основные статусы:
OK(0) - успешное выполнениеCancelled(1) - операция отмененаInvalidArgument(3) - неверные параметрыNotFound(5) - ресурс не найденInternal(13) - внутренняя ошибка сервера
Пример обработки в Go:
if err != nil {
if status.Code(err) == codes.NotFound {
log.Println("Запрашиваемый ресурс не найден")
} else {
log.Printf("Ошибка: %v", err)
}
}
Статусы передаются в метаданных и могут содержать дополнительное описание ошибки. Клиент может анализировать эти статусы для корректной обработки ошибок.