GeneratorExitException is a standard exception raised by Generator.Close() to allow a caller to close out a generator.
Implementation of the Python exceptions module and the IronPython/CLR exception mapping mechanism. The exception module is the parent module for all Python exception classes and therefore is built-in to IronPython.dll instead of IronPython.Modules.dll. The exception mapping mechanism is exposed as internal surface area available to only IronPython / IronPython.Modules.dll. The actual exceptions themselves are all public. Because the oddity of the built-in exception types all sharing the same physical layout (see also PythonExceptions.BaseException) some classes are defined as classes w/ their proper name and some classes are defined as PythonType fields. When a class is defined for convenience their's also an _TypeName version which is the PythonType.
Base class for all Python exception objects. When users throw exceptions they typically throw an exception which is a subtype of this. A mapping is maintained between Python exceptions and .NET exceptions and a corresponding .NET exception is thrown which is associated with the Python exception. This class represents the base class for the Python exception hierarchy. Users can catch exceptions rooted in either hierarchy. The hierarchy determines whether the user catches the .NET exception object or the Python exception object. Most built-in Python exception classes are actually instances of the BaseException class here. This is important because in CPython the exceptions do not add new members and therefore their layouts are compatible for multiple inheritance. The exceptions to this rule are the classes which define their own fields within their type, therefore altering their layout: EnvironmentError SyntaxError IndentationError (same layout as SyntaxError) TabError (same layout as SyntaxError) SystemExit UnicodeDecodeError UnicodeEncodeError UnicodeTranslateError These exceptions cannot be combined in multiple inheritance, e.g.: class foo(EnvironmentError, IndentationError): pass fails but they can be combined with anything which is just a BaseException: class foo(UnicodeDecodeError, SystemError): pass Therefore the majority of the classes are just BaseException instances with a custom PythonType object. The specialized ones have their own .NET class which inherits from BaseException. User defined exceptions likewise inherit from this and have their own .NET class.
.NET exception that is thrown to signal the end of iteration in Python
.NET exception that is thrown to shutdown the interpretter and exit the system.