> If you don't want to let the original timeout error bubble up you can create
> your own little hierarchy of exceptions:
>
> class ResponseError(Exception):
> pass
>
> class TimeoutError(ResponseError):
> pass
>
> class BadDataError(ResponseError):
> pass
>
> Then the baseclass of ResponseError doesn't matter much as client code that
> wants to catch every expected error can catch ResponseError. You can later
> add subclasses as needed without breaking this catch-all client.
Thanks for all the answers to my question, they were all helpful.
I have one more question, which regards style. Suppose my 'send' method is in
its own module: TxControl, along with the custom exceptions:
TxControl.py:
class MessageTimeoutError(Exception): pass
class UndefinedMessageTypeError(Exception): pass
def send(msg)
etc.
Then it seems that an importer of that module must include the module name when
referencing the exceptions:
import TxControl
try:
send(msg)
except (TxControl.MessageTimeoutError, TxControl.UndefinedMessageTypeError) as
err:
# Exception processing
Including 'TxControl' seems a bit tedious, and is even worse if TxControl
imports exceptions from yet another module and allows them to pass up the stack.
How would you handle this situation stylistically?
David
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor