What is wrong with the following code (under Python 2.7.1):
class TestFailed(BaseException): def __new__(self, m): self.message = m def __str__(self): return self.message try: raise TestFailed('Oops') except TestFailed as x: print x
When I run it, I get:
Traceback (most recent call last): File "x.py", line 9, in <module> raise TestFailed('Oops') TypeError: exceptions must be old-style classes or derived from BaseException, not NoneType
But it seems to me that TestFailed comes from BaseException .
James kanze
source share