view hglib/error.py @ 191:6987d6cd420c

client: raise ResponseError in _readchannel() Make it clearer that this is an unrecoverable communication error. ServerError alone is not always unrecoverable, as CapabilityError is considered a subtype of it. This way, a caller can check for ResponseError to identify errors that require reopening the client to recover.
author Gábor Stefanik <gabor.stefanik@nng.com>
date Mon, 21 Aug 2017 17:13:37 +0200
parents 59cb26bf866e
children
line wrap: on
line source

class CommandError(Exception):
    def __init__(self, args, ret, out, err):
        self.args = args
        self.ret = ret
        self.out = out
        self.err = err

    def __str__(self):
        return str((self.ret, self.out.rstrip(), self.err.rstrip()))

class ServerError(Exception):
    pass

class ResponseError(ServerError, ValueError):
    pass

class CapabilityError(ServerError):
    pass