clientv3: document error handling in README

release-2.3
Gyu-Ho Lee 2016-02-29 15:41:52 -08:00
parent eb1211bced
commit 4bf3756aa8
1 changed files with 21 additions and 1 deletions

View File

@ -42,7 +42,27 @@ if err != nil {
## 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