mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
clientv3: document error handling in README
This commit is contained in:
parent
eb1211bced
commit
4bf3756aa8
@ -42,7 +42,27 @@ if err != nil {
|
|||||||
|
|
||||||
## Error Handling
|
## Error Handling
|
||||||
|
|
||||||
TODO
|
etcd client returns 2 types of errors:
|
||||||
|
|
||||||
|
1. context error: canceled or deadline exceeded.
|
||||||
|
2. gRPC error: see [v3rpc/error](https://github.com/coreos/etcd/blob/master/etcdserver/api/v3rpc/error.go).
|
||||||
|
|
||||||
|
Here is the example code to handle client errors:
|
||||||
|
|
||||||
|
```go
|
||||||
|
resp, err := kvc.Put(ctx, "", "")
|
||||||
|
if err != nil {
|
||||||
|
if err == context.Canceled {
|
||||||
|
// ctx is canceled by another routine
|
||||||
|
} else if err == context.DeadlineExceeded {
|
||||||
|
// ctx is attached with a deadline and it exceeded
|
||||||
|
} else if verr, ok := err.(*v3rpc.ErrEmptyKey); ok {
|
||||||
|
// process (verr.Errors)
|
||||||
|
} else {
|
||||||
|
// bad cluster endpoints, which are not etcd servers
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user