| Exception Translation

All C++ exceptions must be caught at the boundary with Python code. This boundary is the point where C++ meets Python. Boost.Python provides a default exception handler that translates selected standard exceptions, then gives up:

`

        raise RuntimeError, 'unidentifiable C++ Exception'

`

Users may provide custom translation. Here's an example:

`

        struct PodBayDoorException;
        void translator(PodBayDoorException& x) {
            PyErr_SetString(PyExc_UserWarning, "I'm sorry Dave...");
        }
        BOOST_PYTHON_MODULE(kubrick) {
             register_exception_translator<
                  PodBayDoorException>(translator);
             ...

`

Copyright © 2002 David Abrahams
Copyright © 2002 Joel de Guzman
Permission to copy, use, modify, sell and distribute this document is granted provided this copyright notice appears in all copies. This document is provided "as is" without express or implied warranty, and with no claim as to its suitability for any purpose.