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 - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor