Mercurial > python-hglib
view hglib/error.py @ 176:3f854e3bcdd1 2.2
client: raise KeyError from __getitem__ (BC)
object.__getitem__ is supposed to raise either IndexError or KeyError
(depending on whether the thing is a sequence or a mapping). Before,
we would raise ValueError because that's what the context constructor
raises.
I choose to raise KeyError because IndexError felt a bit too limiting.
This does sacrifice some magic with for loops handling IndexError.
However, iteration of this object should be handled by a custom
__iter__, so I don't think this is a problem.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Wed, 06 Jul 2016 14:14:22 -0700 |
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