From be59d023f27ac0bc543cb7bee7f33519091ea4a0 Mon Sep 17 00:00:00 2001 From: iamqizhao Date: Wed, 29 Jun 2016 15:21:44 -0700 Subject: [PATCH] refactor error handling a bit --- call.go | 3 --- clientconn.go | 2 +- rpc_util.go | 6 ++++++ stream.go | 3 --- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/call.go b/call.go index 49406637..93262360 100644 --- a/call.go +++ b/call.go @@ -158,9 +158,6 @@ func Invoke(ctx context.Context, method string, args, reply interface{}, cc *Cli if _, ok := err.(rpcError); ok { return err } - if err == ErrClientConnClosing { - return Errorf(codes.FailedPrecondition, "%v", err) - } if err == errConnClosing { if c.failFast { return Errorf(codes.Unavailable, "%v", errConnClosing) diff --git a/clientconn.go b/clientconn.go index 2ef9fa4c..4e80ad73 100644 --- a/clientconn.go +++ b/clientconn.go @@ -431,7 +431,7 @@ func (cc *ClientConn) getTransport(ctx context.Context, opts BalancerGetOptions) cc.mu.RLock() if cc.conns == nil { cc.mu.RUnlock() - return nil, nil, ErrClientConnClosing + return nil, nil, toRPCErr(ErrClientConnClosing) } ac, ok := cc.conns[addr] cc.mu.RUnlock() diff --git a/rpc_util.go b/rpc_util.go index 23d60e6c..91342bd8 100644 --- a/rpc_util.go +++ b/rpc_util.go @@ -401,7 +401,13 @@ func toRPCErr(err error) error { code: codes.Canceled, desc: err.Error(), } + case ErrClientConnClosing: + return rpcError{ + code: codes.FailedPrecondition, + desc: err.Error(), + } } + } return Errorf(codes.Unknown, "%v", err) } diff --git a/stream.go b/stream.go index 60319022..73d1da23 100644 --- a/stream.go +++ b/stream.go @@ -152,9 +152,6 @@ func NewClientStream(ctx context.Context, desc *StreamDesc, cc *ClientConn, meth if _, ok := err.(rpcError); ok { return nil, err } - if err == ErrClientConnClosing { - return nil, Errorf(codes.FailedPrecondition, "%v", err) - } if err == errConnClosing { if c.failFast { return nil, Errorf(codes.Unavailable, "%v", errConnClosing)