[Python-Dev] What exception should Thread.start() raise? (original) (raw)
Steven Bethard steven.bethard at gmail.com
Mon Jun 4 21:50:39 CEST 2007
- Previous message: [Python-Dev] What exception should Thread.start() raise?
- Next message: [Python-Dev] What exception should Thread.start() raise?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 6/4/07, BJörn Lindqvist <bjourne at gmail.com> wrote:
The threading module contains buggy code:
class Thread(Verbose): ... def start(self): _assert self.initialized, "Thread.init() not called" _assert not self.started, "thread already started" ... If you run such code with python -O, weird stuff may happen when you call mythread.start() multiple times. -O removes assert statements so the code won't fail with an AssertionError which would be expected. So what real exception should Thread.start() raise? I have suggested adding an IllegalStateError modelled after java's IllegalStateException, but that idea was rejected. So what exception should be raised here, is it a RuntimeError?
If you want to be fully backwards compatible, you could just write this like::
def start(self):
if not self.__initialized:
raise AssertionError("Thread.__init__() not called")
if self.__started:
raise AssertionError("thread already started")
But I doubt anyone is actually catching the AssertionError, so changing the error type would probably be okay.
STeVe
I'm not in-sane. Indeed, I am so far out of sane that you appear a tiny blip on the distant coast of sanity. --- Bucky Katt, Get Fuzzy
- Previous message: [Python-Dev] What exception should Thread.start() raise?
- Next message: [Python-Dev] What exception should Thread.start() raise?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]