[pypy-dev] Alternatives to multiple inheritance

Armin Rigo arigo at tunes.org
Fri Apr 18 08:44:33 CEST 2014


Hi Ryan,

On 18 April 2014 01:13, Benjamin Peterson <benjamin at python.org> wrote:
> On Thu, Apr 17, 2014, at 15:42, Ryan Gonzalez wrote:
>> The exception object needs to
>> derive from my base class in order for me to use polymorphism inside the
>> interpreter. However, it also needs to derive from the Exception class to
>> be throwable.
>
> In this case, you may want to do what the PyPy Python interpreter does.
> There is one interpreter level exception for app-level exceptions called
> OperationError. OperationError wraps the app-level exception object
> inside of it.

In other words, the easiest is to have a class OpError(Exception) that
wraps your real exception object; then raise and catch
"OpError(your_object)" and don't do anything else with the OpError
class.

RPython is not C++ is that you can't throw and catch random things
(like integers...).  But then it is not C++ in that it has better
malloc-removal support :-)


A bientôt,

Armin.


More information about the pypy-dev mailing list