Error exception must derive from BaseException even when it does (Python 2.7)
<p>What's wrong with the following code (under Python 2.7.1):</p>

<pre><code>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
</code></pre>

<p>When I run it, I get:</p>

<pre><code>Traceback (most recent call last):
  File "x.py", line 9, in &lt;module&gt;
    raise TestFailed('Oops')
TypeError: exceptions must be old-style classes or derived from BaseException, not NoneType
</code></pre>

<p>But it looks to me that <code>TestFailed</code> does derive from <code>BaseException</code>.</p>
