Python exceptions must be Python classes; they cannot be C extension types -- the mechanism used to wrap SIDL objects as Python objects. Because of this, Babel defines an exception class for each SIDL type that implements sidl.BaseException. For a type called X.Y.Z, the Python exception class is named X.Y.Z._Exception.
NOTE
In Babel 0.10.2 and previous releases, the Python exception class was
named X.Y.Z.Exception, but this name can potentially collide with
the class constructor or a static method named Exception. For
backwards compatibility, Babel defines X.Y.Z.Exception if the
name Exception is not used in the class.