Patches item #1685642, was opened at 2007-03-22 00:25
Message generated for change (Comment added) made by gbrandl
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1685642&group_id=5470

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Bj�rn Lindqvist (sonderblade)
Assigned to: Nobody/Anonymous (nobody)
Summary: Add IllegalStateError

Initial Comment:
Java has an exception called IllegalStateException. It is very useful for 
signaling "what you did would have been OK, but right now I can't do it." 
Python does not have a counterpart, but I think it should.

For example, if you have a Python RDBMS-binding and you call db.select() before 
calling db.connect() it could raise a IllegalStateError (or maybe a subclass of 
it) that says 'IllegalStateError: "Must be connected to perform queries"'. 

Or for another example, take the Thread.start() function. Currently, if you 
call myThread.start() twice it will raise an AssertionError. That's no good 
because the result is undefined if you run python with -O. See Bug #904498 and 
Patch #1676820 (Martin v. Löwis comment). IllegalStateError should fit 
perfectly here:

>>> t = threading.Thread()
>>> t.start()
>>> t.start()
Traceback (most recent call last):
  ...
IllegalStateError: thread already started

----------------------------------------------------------------------

>Comment By: Georg Brandl (gbrandl)
Date: 2007-03-23 18:41

Message:
Logged In: YES 
user_id=849994
Originator: NO

In principle this is a good idea -- currently there's no guideline what to
raise in such a situation.
Some libraries raise RuntimeError (probably a new exception should be made
subclass thereof), some
do assertions, some raise custom exceptions.

However, for this to be a complete patch, you'd have to find all those
places where IllegalStateError
would be appropriate. Also, switching to it would be a Py3k thing,
provided that this breakage is
suffered by python-dev.

In any case, I think you should bring it up on the python-3000 mailing
list -- otherwise this will
never be decided upon.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1685642&group_id=5470
_______________________________________________
Patches mailing list
Patches@python.org
http://mail.python.org/mailman/listinfo/patches

Reply via email to