"Alex Hall" <[email protected]> wrote
I am wondering what the best way to do the following would be: throw
an exception, or always return an object but set an error flag if
something goes wrong? Here is an example:
Throw an exception is the short general case answer...
class c:
def __init__(self):
self.error=False
def func(self, val):
if val!=10: self.error=True
But note that neither of these methods returns "an object"
- unless you count None as an object of course.
Which is the "standard" way when dealing with objects? Throw
exceptions or always return an object, even if said object has an
error and may therefore not have data beyond an error code and
message?
I'm not sure what you have in mind here but remember that
init() is an initialiser and not really a constructor so the object
already exists when init() is called. init() does not return the
object.
And most methods do not return the object of which they
are a part (in Python at least, in SmallTalk they do).
But if you are using object in the general sense of a return
value (since everything in Python is an object) then yes
you should return an object and let the exception signal
failure.
If I go the exception route, can I somehow put a message into
the exception, maybe adding it as an attribute of my custom
exception
class?
Yes, or you can just pass a string to any exception when you raise it.
Alan G.
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor