Browse Source

clientv3: document error handling in README

Gyu-Ho Lee 9 years ago
parent
commit
4bf3756aa8
1 changed files with 21 additions and 1 deletions
  1. 21 1
      clientv3/README.md

+ 21 - 1
clientv3/README.md

@@ -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