Các mã trạng thái sau đây có thể được trả về trong phản hồi gRPC. Yêu cầu này áp dụng cho tất cả các phiên bản gRPC có trên trang web này.
Mã | Trạng thái | Ghi chú |
---|---|---|
0 | OK |
Bay về vào Success |
1 | CANCELLED |
Thao tác đã bị huỷ, thường là do phương thức gọi thực hiện. |
2 | UNKNOWN |
Ví dụ: lỗi này có thể được trả về khi giá trị Trạng thái nhận được từ một không gian địa chỉ khác thuộc về một không gian lỗi không xác định trong không gian địa chỉ này. Ngoài ra, các lỗi do API không trả về đủ thông tin lỗi có thể được chuyển đổi thành lỗi này. |
3 | INVALID_ARGUMENT |
Ứng dụng chỉ định một đối số không hợp lệ. |
4 | DEADLINE_EXCEEDED |
Đã hết thời hạn này trước khi thao tác hoàn tất. Đối với các hoạt động thay đổi trạng thái của hệ thống, lỗi này có thể được trả về ngay cả khi thao tác đó hoàn tất thành công. Ví dụ: một phản hồi thành công từ một máy chủ bị trì hoãn đủ lâu để hết thời hạn. |
5 | NOT_FOUND |
Không tìm thấy một số thực thể được yêu cầu. |
6 | ALREADY_EXISTS |
Mục mà khách hàng cố gắng tạo đã tồn tại. |
7 | PERMISSION_DENIED |
Phương thức gọi không có quyền thực thi thao tác đã chỉ định. Đừng sử dụng PERMISSION_DENIED cho các trường hợp từ chối do sử dụng hết một số tài nguyên. Thay vào đó, hãy sử dụng RESOURCE_EXHAUSTED cho những lỗi đó. Đừng sử dụng PERMISSION_DENIED nếu không thể xác định phương thức gọi (thay vào đó, hãy sử dụng UNAUTHENTICATED cho những lỗi đó). Việc nhận được một mã lỗi PERMISSION_DENIED không có nghĩa là yêu cầu đó hợp lệ, hay thực thể được yêu cầu tồn tại hay đáp ứng các điều kiện tiên quyết khác. |
8 | RESOURCE_EXHAUSTED |
Một số tài nguyên đã hết, có thể là hạn mức cho mỗi người dùng hoặc có thể toàn bộ hệ thống tệp đã hết dung lượng. |
9 | FAILED_PRECONDITION |
Hoạt động đã bị từ chối vì hệ thống không ở trạng thái cần thiết để thực thi hoạt động. Ví dụ: thư mục cần xoá là thư mục không trống hoặc thao tác rmdir được áp dụng cho một thư mục không phải thư mục. |
10 | ABORTED |
Thao tác này đã bị huỷ, thường do vấn đề đồng thời, chẳng hạn như lỗi kiểm tra trình tự, hoặc huỷ giao dịch. |
11 | OUT_OF_RANGE |
Đã cố gắng thực hiện thao tác vượt quá phạm vi hợp lệ. |
12 | UNIMPLEMENTED |
Thao tác này chưa được triển khai hoặc không được hỗ trợ/bật trong dịch vụ này. |
13 | INTERNAL |
Lỗi nội bộ. Điều này có nghĩa là một số bất biến mà hệ thống cơ bản dự kiến đã bị hỏng. Mã lỗi này dành riêng cho các lỗi nghiêm trọng. |
14 | UNAVAILABLE |
Dịch vụ này hiện không dùng được. Đây rất có thể là một tình trạng tạm thời và có thể khắc phục được nếu thử lại bằng thời gian đợi. |
15 | DATA_LOSS |
Mất hoặc hỏng dữ liệu và không thể khôi phục. |
16 | UNAUTHENTICATED |
Yêu cầu không có thông tin xác thực hợp lệ cho thao tác. |
Đôi khi, có thể áp dụng nhiều mã lỗi. Các dịch vụ phải trả về mã lỗi cụ thể nhất áp dụng. Ví dụ: hãy ưu tiên OUT_OF_RANGE
hơn FAILED_PRECONDITION
nếu áp dụng cả hai mã.
Tương tự, hãy ưu tiên NOT_FOUND
hoặc ALREADY_EXISTS
hơn FAILED_PRECONDITION
.
FAILED_PREcondition với ABORTED so với UNAVAILABLE
Sau đây là bài kiểm thử quỳ có thể giúp bạn quyết định giữa FAILED_PRECONDITION
, ABORTED
và UNAVAILABLE
:
- Sử dụng
UNAVAILABLE
nếu ứng dụng chỉ có thể thử lại lệnh gọi không thành công. - Sử dụng
ABORTED
nếu ứng dụng nên thử lại ở cấp cao hơn, chẳng hạn như khi quá trình kiểm thử và thiết lập do ứng dụng chỉ định gặp lỗi, cho biết rằng ứng dụng nên bắt đầu lại trình tự đọc-sửa đổi-ghi. - Sử dụng
FAILED_PRECONDITION
nếu ứng dụng không nên thử lại cho đến khi trạng thái hệ thống được khắc phục rõ ràng. Ví dụ: nếu "rmdir" bị lỗi do thư mục không trống, tốt nhất là bạn nên trả vềFAILED_PRECONDITION
vì ứng dụng không nên thử lại trừ phi các tệp bị xoá khỏi thư mục.
INVALID_ACCOUNT so với FAILED_PRE tình so với OUT_OF_RANGE
Sau đây là bài kiểm thử quỳ có thể giúp bạn quyết định giữa INVALID_ARGUMENT
, FAILED_PRECONDITION
và OUT_OF_RANGE
:
- Hãy sử dụng
INVALID_ARGUMENT
nếu các đối số có vấn đề bất kể trạng thái của hệ thống. Ví dụ: URL không đúng định dạng - Sử dụng
OUT_OF_RANGE
nếu một giá trị nằm ngoài phạm vi do trạng thái của hệ thống. Ví dụ: ngày bắt đầu trước ngàystart_date_restrict
. - Sử dụng
FAILED_PRECONDITION
nếu giá trị không hợp lệ do trạng thái của hệ thống, nhưng không phải là giá trịOUT_OF_RANGE
.