=== relates to: S5632 === on 5 Mar 2020, 14:17:55 Nicolas Harraudeau wrote: Even if it is possible to catch a class which is not a BaseException in python 2, this rule is still a bug for the following reasons: * BaseException exists in Python 2 too. There is no reason not to use it. It is advised to use exceptions derived from BaseException since python 2.5 released in 2006. * Python 2 is not maintained anymore and there are tools enabling developpers to migrate from python 2 to python 3. When developers migrate this will become a bug. * We already have RSPEC-5632 as a Bug and nobody complains. Let’s remain consistent. If we change the rule to code smell we have to change this other rule too. * old style classes are the only exception in python 2. Trying to raise a string or a list will fail in in both python 2 and python 3. This exception would be a corner case.