On Mon, Oct 12, 2015 at 02:55:43PM +0000, David Aldrich wrote:
> Hi
>
> Consider a 'send' method that sends a message to another system via a
> socket. This method will wait for a response before returning. There
> are two possible error conditions:
[...]
> So, my question is, what's the pythonic way of doing this? Should I
> subclass RuntimeError for each possible error condition? E.g.:
>
> class MessageTimeoutError(RuntimeError): pass
> class IllegalResponseError(RuntimeError): pass
I don't think you should be subclassing RuntimeError at all. I'm not
quite sure what exception you should subclass, but I am confident it
shouldn't be RuntimeError.
Help on class RuntimeError in module exceptions:
class RuntimeError(StandardError)
Unspecified run-time error.
Since you are working with sockets, I think a socket error might be most
useful:
import socket # which I expect you are already doing
class MessageTimeoutError(socket.error): pass
class IllegalResponseError(socket.error): pass
Or possibly inherit from the same exception class that socket.error
inherits from: IOError.
I'm not certain that you actually need MessageTimeoutError since the
socket module itself already defines a socket.timeout error that will be
raised on a timeout. Just re-use that.
--
Steve
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor